✨博文作者:烟雨孤舟
喜欢的可以 点赞 收藏 关注哦~~✍️ 作者简介: 一个热爱大数据的学习者
✍️ 笔记简介:作为大数据爱好者,以下是个人总结的学习笔记,如有错误,请多多指教!
目录
字符串定义
字符串初始化
字符串函数
在c中没有专门的字符串变量,通常用一个字符数组来存放一个字符串,并且字符串总是以空字符'\0'作为字符串的结束语。
字符串的本质是以 \0 结束的字符数组。
字符串的三中表达方式(结果相同):
char a[]={'m','a','p','\0'};//字符数组
char a[]={"map"};//字符串数组
char a[]="map";//字符串
0 | 1 | 2 | 3 |
---|---|---|---|
m | a | p | \0 |
#include
int main ()
{
char a[]="RUNOOB";
char site[7] = {'R', 'U', 'N', 'O', 'O', 'B', '\0'};
printf("上下字符串结果相同%s\n", site);
printf("上下字符串结果相同%s\n", a);
return 0;
}
输出结果:
//上下字符串结果相同RUNOOB
//上下字符串结果相同RUNOOB
字符串的格式符 %s
字符串输入格式:
char a[]="map";
printf("%s",a);
字符数组的输入:scanf("%s",数组名);
字符串数组的输入:
字符数组输入无需加取地址符&,数组名表示数组的首地址
当使用scanf函数输入字符串时,不能含有空格,负责以空格作为串的结束符
字符串输出函数puts
格式:puts(字符数组名称);
char a[]="hello";
puts(a);
字符串输入函数gets
格式: gets(字符数组名);
char a[6]
gets(a);
//字符串的本质是以 \0 结束的字符数组。
字符串的字面量是常量,比如"hello"
数组形式:
char hi[] = {'h','e','l','l','o','\0'};
直接赋首地址:
char hi[6] ="hello" ;
省略长度:
char hi[] = "hello";
char hi[] = {"hello"};
字符指针:(注意指针不能直接赋给数组)
char *hi = "hello";
sizeof() 计算字符串的长度,包含末尾的 '\0'
strlen() 计算字符串的长度,不包含字符串末尾的 '\0'
strcpy(s1,s2); 复制字符串 s2 到字符串 s1。
strcat(s1,s2); 连接字符串 s2 到字符串 s1 的末尾。
strlen(s1); 返回字符串 s1 的长度。
strcmp(s1,s2);如果s1<=s2则返回小于 0;如果 s1>s2 则返回大于 0。
strchr(s1,ch);返回一个指针,指向字符串s1中字符ch的第一次出现的位置。
strstr(s1,s2);返回一个指针,指向字符串s1中字符串s2的第一次出现的位置
函数英文全称
strcmp: string compare
strcat: string catenate
strcpy: string copy
strlen: string length
strlwr: string lowercase
strupr: string upercase
初始化字符串,如果没有在字符数组最后增加 \0,输出字符串时会报错
//错误方式
char greeting[5] = { 'H', 'e', 'l', 'l', 'o' };
//正确方式
char greeting[5] = { 'H', 'e', 'l', 'l', 'o','\0'};
char greeting[] ="hello";
//在使用不定长数组初始化字符串时默认结尾为 \0
'a' 表示是一个字符,"a" 表示一个字符串相当于 'a'+'\0';
'' 里面只能放一个字符;
"" 里面表示是字符串系统自动会在串末尾补一个 0。