【C++】简短笔记-关于字符数组

关于字符数组:
len1 = strlen(str1);
len2 = strlen(str2);
int i;
for ( i = 0; i < len1; i++)
{
str3[i] = str1[i];
int qq = 5;
}
str3[i] = ‘\0’;
1、初始化:
(1)可以像普通数组一样,一个一个赋值进行初始化
(2)也可以通过直接赋值字符串来初始化(仅限于初始化的时候);
2、字符数组的输入输出:
输入:scanf getchar gets(fgets)
输出:printf putchar puts
(1)scanf 在%c时可以识别空格和换行并将其输入
在%s时通过空格或换行来识别一个字符串的结束
(2)getchar/putchar
分别用来输入和输出单个字符(getchar不会自动添加\0,需要输出记得自己加)
(3)gets/puts
gets输入一行字符串(识别换行符作为输入结束)(fgets会把\n加在数组中!)
因此scanf完一个整数后,如果要使用gets,应该先用getchar接收换行符
凡是想用fgets,一定要注意前面有没有换行符!
puts用来输出字符串,并紧跟一个换行
3、字符数组的存放方式
字符数组的末尾有个空字符\0
在使用gets和scanf输入字符串时会自动添加在输入的字符串后面,并占用一个字符位
(字符数组的长度一定要比实际储存数多1)
puts和printf就是通过识别\0作为字符串结尾来输出
如果不是使用scanf的%s或者gets函数输出字符串,记得在输出的每个字符后加\0
4、string.h头文件
(1)strlen()
得到字符数组中第一个\0前的字符的个数
(2)strcpy()
把字符数组2复制给字符数组1,包括\0
strcpy(字符数组1,字符数组2)
(3)strcat()
把字符数组2接到字符数组1后面
(4)sscanf()/sprintf()
sscanf(str,"%d",&n);把str写入n
sprintf(str,"%d",n);把n写入str
还可以有%s %f %c等格式,都能适用

发布了43 篇原创文章 · 获赞 4 · 访问量 1216

猜你喜欢

转载自blog.csdn.net/weixin_42176221/article/details/101113849