字符串的本质是字符数组,通常使用char* 类定义字符串变量。
char*是字符指针数据类型,它的本质是个指针,也就是地址,它指向了一个char类型(字符类型)的内存单元。我们在后面的指针单元会详细讲解。
1.如何定义字符串变量
实例:
#include <stdio.h>
int main(){
char* str1 = "I love you china!";
char* str2 = "hello,一起学习C语言吧!";
printf("%s\n",str1);
printf("%s\n",str2);
return 0;
}
当然,也可以使用char[]方式定义字符串变量。
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main(){
char str1[50] = "I love you china!";
char str2[50] = "hello,一起学习C语言吧!";
printf("%s\n",str1);
printf("%s\n",str2);
return 0;
}
运行结果:
I love you china!
hello,一起学习C语言吧!
2.字符串长度
在C语言中,我们使用string.h头文件中的 strlen() 函数来求字符串的长度。 strlen() 函数从字符串的开头位置依次向后计数,直到遇见\0,然后返回计时器的值。最终统计的字符串长度不包括\0。
注意:strlen()返回的是字节数量而不是字符数量。这一点和其它高级语言(Java等)有很大的区别!
例如:
#include <stdio.h>
#include <string.h>
int main(){
char* str1 = "I love you china!";
char* str2 = "hello,一起学习C语言吧!";
printf("%s\n",str1);
printf("%s\n",str2);
printf("str1 length is :%d\n",strlen(str1));
printf("str2 length is :%d\n",strlen(str2));
return 0;
}
运行结果:
I love you china!
hello,一起学习C语言吧!
str1 length is :17
str2 length is :23
这里一个汉字占据两个字节,所以str2长度是23个字节。