适合初学者的C语言字符串讲解
1. 什么是字符串?
在C语言中,字符串(string)是由一个个字符组成的字符数组(char array)。字符串的结尾会以空字符\0
作为标志。例如,字符串"hello"
实际上是由5个字符组成的字符数组,字符串的最后一位是空字符\0
。
2. 字符串的定义与初始化
定义字符串可以使用字符数组来表示。比如下面的代码定义了一个名为str
的字符串,该字符串具有10个字符的空间,在未被赋值前,该字符串中的每个字符都是随机的。
char str[10];
如果我们想要给字符串一个初值,可以在定义的时候进行初始化。
char str[] = "hello";
字符串也可以在声明时直接赋值。
char *str = "hello";
注意,将一个字符串常量(字符串常量就是带着双引号的字符串)赋值给一个字符数组,是不被允许的,譬如下面的代码就是错误的:
char str[10]="hello"; //正确的初始化方式
char str[10] = "hello"; //错误的初始化方式
3. 字符串的输入输出
使用C标准库提供的printf()
函数可以输出一个字符串。例如下面的代码可以输出字符串"hello world!"
:
printf("hello world!");
使用%s
格式化字符可以输出一个字符串变量,例如下面的代码可以输出字符串变量str
中储存的内容:
char str[] = "hello";
printf("%s", str);
使用scanf()
函数可以从标准输入(例如键盘)读取一个字符串。下面是一个使用scanf()
读取字符串并输出的示例:
char str[10];
printf("请输入字符串:");
scanf("%s", str);
printf("你输入的是:%s", str);
需要注意的是,scanf()
函数在读取字符串时,会忽略字符串前面的空格,并在读取到空格或者回车时停止读取。如果我们想要读取带空格的一行字符串,应该使用gets()
函数或者fgets()
函数。
4. 字符串的比较
在C语言中,使用strcmp()
函数可以比较两个字符串是否相同。例如下面的代码可以比较字符串变量str1
和str2
的内容是否一致。
char str1[] = "hello";
char str2[] = "world";
if (strcmp(str1, str2) == 0) {
printf("str1和str2相同");
} else {
printf("str1和str2不同");
}
5. 字符串的拼接
在C语言中,使用strcat()
函数可以将两个字符串拼接在一起。例如,下面的代码就将字符串变量str1
和str2
进行拼接。
char str1[] = "hello";
char str2[] = "world";
strcat(str1, str2);
printf("%s", str1); // 输出 "helloworld"
需要注意的是strcat()
函数会将第二个字符串中的内容全部拼接到第一个字符串的末尾,如果第一个字符串中的空间不足以存储全部内容,就会发生字符串越界的错误。
示例1:计算字符串的长度
实现一个函数strlen()
,它可以计算字符串的长度。例如,strlen("hello")
的返回值应该是5,strlen("world")
的返回值应该是6。
#include <stdio.h>
int strlen(char *str) {
int len = 0;
while (*str++ != '\0') {
len++;
}
return len;
}
int main() {
char str[] = "hello";
printf("%d", strlen(str)); // 输出 5
return 0;
}
示例2:字符串反转
实现一个函数reverse()
,它可以将字符串倒序输出。例如,reverse("hello")
应该输出"olleh"。
#include <stdio.h>
void reverse(char *str) {
int len = strlen(str);
for (int i = 0; i < len / 2; i++) {
char temp = str[i];
str[i] = str[len - i - 1];
str[len - i - 1] = temp;
}
}
int main() {
char str[] = "hello";
reverse(str);
printf("%s", str); // 输出"olleh"
return 0;
}
以上是适合初学者的C语言字符串讲解,希望能对你有所帮助!
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:适合初学者的C语言字符串讲解 - Python技术站