C|数组与字符串

目录

定义及初始化
字符数组的输入输出
字符形式输入输出
scanf,printf函数
getchar,putchar 函数
字符串输入输出
scanf,printf函数
puts,gets函数
字符串函数的简单使用

定义及初始化 在C语言标准中并没有字符串类型,这也使得与字符串有关的操作总是需要字符数组来进行,但字符数组有时候并不能看做字符串。
因为字符串是以" "引起来的一段字符,并且以'\0'为结束标志。如:

char arr[] = "abcdef";

在内存中是一个字符一个字符地存储
C|数组与字符串
文章图片


【C|数组与字符串】C|数组与字符串
文章图片

'\0'会自动往里面放。如果你限定了数组元素个数,就不会放'\0',说明'\0'也要占一个空间。
C|数组与字符串
文章图片

按照一般的数组初始化方式进行初始化,就会出现下面这种情况:
char arr[5]={'a','b','c','d','e'}; //这里的字符数组a里没有'\0',强行以字符串形式打印会出错


字符数组的输入输出 字符数组的输入方式大致分为两种字符形式输入和字符串形式输入
字符形式输入输出 scanf,printf函数
//按照数组一格一格地输入输出 #include int main() { char arr[5] = { 0 }; for (int i = 0; i < 5; i++) scanf("%c", &arr[i]); for (int i = 0; i < 5; i++) printf("%c", arr[i]); return 0; }

getchar,putchar 函数
#include int main() { char arr[5] = { 0 }; for (int i = 0; i < 5; i++) arr[i] = getchar(); for (int i = 0; i < 5; i++) putchar(arr[i]); return 0; }

字符串输入输出 scanf,printf函数
#include int main() { char arr[40] = { 0 }; scanf("%s", arr); printf("%s\n", arr); return 0; }

puts,gets函数
#include int main() { char arr[40] = { 0 }; gets(arr); puts(arr); return 0; }

区别:scanf函数遇到空格符会停止 ,而putchar和puts不会。

字符串函数的简单使用
#include #include int main() { char arr1[20] = "hello"; char arr2[] = "world"; printf("%s\n", strcpy(arr1, arr2)); //字符串拷贝,将arr2拷贝到arr1中 printf("%s\n", strcat(arr1, arr2)); //字符串追加,将arr2追加到arr1的\0之后 printf("%d\n", strlen(arr1)); //求字符串长度,不包括\0 printf("%d\n", strcmp(arr1, arr2)); //字符串比较,第一个大于第二个字符串返回大于零的数, //等于返回0,小于返回小于零的数 return 0; }

C|数组与字符串
文章图片


    推荐阅读