风流的足球 · 遮天新预告,同学分离叶凡进灵墟洞天,官方做到 ...· 1 年前 · |
安静的豆浆 · 原耽推文:《攀龙附凤》-废文_哔哩哔哩_bi ...· 1 年前 · |
酒量大的蛋挞 · 有点儿惨!5月第三周新势力上险量榜单出炉 ...· 1 年前 · |
安静的松鼠 · 《古剑奇谭》图文流程攻略_系统解析,基本操作 ...· 1 年前 · |
坚韧的红薯 · 1传11+33!大连本轮疫情出现超级传播现象 ...· 1 年前 · |
在 C 语言中,字符串实际上是使用空字符 \0 结尾的一维字符数组。因此, \0 是用于标记字符串的结束。
空字符(Null character )又称结束符,缩写 NUL ,是一个数值为 0 的控制字符, \0 是转义字符,意思是告诉编译器,这不是字符 0 ,而是空字符。
下面的声明和初始化创建了一个 RUNOOB 字符串。由于在数组的末尾存储了空字符 \0 ,所以字符数组的大小比单词 RUNOOB 的字符数多一个。
char site[7] = {'R', 'U', 'N', 'O', 'O', 'B', '\0'};依据数组初始化规则,您可以把上面的语句写成以下语句:
char site[] = "RUNOOB";以下是 C/C++ 中定义的字符串的内存表示:
其实,您不需要把 null 字符放在字符串常量的末尾。C 编译器会在初始化数组时,自动把 \0 放在字符串的末尾。让我们尝试输出上面的字符串:
当上面的代码被编译和执行时,它会产生下列结果:
菜鸟教程: RUNOOBC 中有大量操作字符串的函数:
序号函数 & 目的 1 strcpy(s1, s2);下面的实例使用了上述的一些函数:
当上面的代码被编译和执行时,它会产生下列结果:
strcpy( str3, str1) : runoob strcat( str1, str2): runoobgoogle strlen(str1) : 12您可以在 C 标准库中找到更多字符串相关的函数。
三三
mr.***ogyo@outlook.com
Felix
pho***xdai@foxmail.com
erili sun
151***1014@qq.com
2、字符串的字面量是常量,比如"hello world"。
3、字符串的定义与初始化。
字符数组:
1)数组形式
char hi[] = {'h','e','l','l','o','\0'};
2)直接赋首地址:
char hi[50] ="hello" ;
3)省略长度
char hi[] = "hello"; char hi[] = { "hello" };
字符指针:(注意指针不能直接赋给数组)
char *hi = "hello";
4、字符串遍历:
char hi[] = "hello";
for 遍历:
for(i==0, i<6,i++) printf("%c",hi[i]);直接输出:
printf(hi);字符串格式(%s)输出:
printf("%s",hi);
lnlidawei
lnl***wei@126.com
#include<stdio.h> #include<stdlib.h> #include<string.h> void msg() char s[] = { "hello,world!" }; printf("s = %s\n", s); printf("sizeof(s) = %d\n", sizeof(s)); printf("strlen(s) = %d\n", strlen(s)); int main(int argc, char* argv[], char* envp[]) msg(); return 0;输出结果为:
s = hello,world! sizeof(s) = 13 strlen(s) = 12更多参考:C 语言关于sizeof() 和 strlen()区别lnlidawei5个月前 (02-27)lnlidawei
lnl***wei@126.com