跳到主要内容

C 语言字符串练习

在 C 语言中字符串的应用比较多,所以在这里我们实现一个函数,函数功能是将一串给定的字符串中的大写字符全部转换为小写字符。

1. 示例程序

在程序中,我们需要实现两个主要的功能,一个是将字符串中的每个字符都访问一次。另外一个就是将遍历过程中获取的大写字符转换为小写字符。

#include <stdio.h>
#include <string.h>
#include <ctype.h>

int main()
{
char a[100] = "Welcome to our WIKI! It is a interest place.", temp;

printf("Before convert: %s\n", a);

for (int i = 0; i < strlen(a); i++)
{
temp = tolower(a[i]);
a[i] = temp;
}

printf("After convert: %s\n", a);

return 0;
}

运行结果:

Before convert: Welcome to our WIKI! It is a interest place.
After convert: welcome to our wiki! it is a interest place.

程序首先通过一个循环语句,遍历访问字符串的每一个元素。在这里,我们用了 C 语言标准库中的字符串函数 strlen 来获取字符串的长度。不过这里请注意的是,这里获取的长度不是字符数组的长度,而是里面包含的字符的长度。这样就不用循环 100 次,因为里面存储的字符内容很显然不到 100 个,同时,这个字符数组中在字符后面会紧接着一个字符串的空串符号,也就是 \0 这个字符。但是这个字符不会出现在我们的循环中,因为通过 strlen 这个函数获取的字符串的长度中是不包含这个符号的。

在循环语句的内部,我们只要简单的执行将每个元素执行一次大写转换为小写的函数操作就可以了。这个函数是 ctype.h 函数库中的函数,只会将大写字母转换为小写字母,不会变换小写字母以及符号。

这里我们需要利用一个临时的字符变量来存储变化后的变量,然后再赋值给当前的字符数组。

2. 小结

在这里我们展示了一个简单的字符串的练习。在 C 语言中对于字符串的处理除了之前介绍的可以使用字符串函数以外,更过的时候是利用其字符数组的特性,可以精确的通过索引访问到每一个字符元素,然后再对其进行处理。

3. 参考文献

  1. Practice Exercises
  2. C tolower()