C语言-字符串


字符串(字符数组)

和java语言一样,严格用双引号代表字符串,单引号代表字符

在C语言中没有专门为字符串定义变量类型;用字符数组存储字符串,字符数组(在用字符串进行赋值时)实际存储的元素个数要比字符串元素个数多一,因为字符数组最后会存储一个空字符\0(普通字符数组并不会有)

定义

明确给出数组长度

1
2
char name[40];
scanf("%s", name);

赋值时确定数组长度

1
char str1[] = "xfssef"; // char str1[] = {"xfssef"};

新值覆盖旧值

1
2
char str="abcdefg"
str="hij\0" \\ 一定要加空字符,否则打印时会出现hijdefg

字符串的输入和输出

输入

scanf函数中的输入项如果是字符数组名,不要再加地址符&

1
2
char str[10];
scanf("%s", str);
1
2
char str1[10],str2[10],str3[10];
scanf("%s%s%s",str1,str2,str3);//输入时要以空格隔开每个字符串

输出

1
2
3
char str[] = "abcdef"
printf("%s", str); // 遇到f后面的空字符\0自动结束
// 当字符数组中有多个空字符\0时,遇到第一个就结束了

字符串处理函数

puts、gets

strlen和sizeof

都可以用来计算字符串的长度,但是差异却很大

当定义字符串时没有明确说明字符串多长

strlen会给出准确答案,但sizeof会比strlen大1,这是因为它算上了空白符

1
2
3
char str[] = "abc";
strlen(str); // 3
sizeof(str); // 4

当定义字符串时明确说明字符串多长

sizeof会给出字符数组的大小,strlen给出准确值

1
2
3
char str[40] = {'a', 'b', 'c'};
strlen(str); // 3
sizeof(str); // 40

strcpy和strcat

strcpy是为字符串赋值;strcat字符串后面添加字符串

1
2
3
char arr[20];
strcpy(arr, "abc");
strcat(arr, ".red");

本文标题:C语言-字符串

文章作者:TTYONG

发布时间:2020年08月28日 - 14:08

最后更新:2022年10月09日 - 23:10

原始链接:http://tianyong.fun/C%E8%AF%AD%E8%A8%80-%E5%AD%97%E7%AC%A6%E4%B8%B2(%E5%AD%97%E7%AC%A6%E6%95%B0%E7%BB%84).html

许可协议: 转载请保留原文链接及作者。

多少都是爱
0%