数组与字符串

目录

定义及初始化

字符数组的输入输出

字符形式输入输出

scanf,printf函数

getchar,putchar 函数

字符串输入输出

scanf,printf函数

puts,gets函数

字符串函数的简单使用


定义及初始化

在C语言标准中并没有字符串类型,这也使得与字符串有关的操作总是需要字符数组来进行,但字符数组有时候并不能看做字符串。

因为字符串是以" "引起来的一段字符,并且以'\0'为结束标志。如:

char arr[] = "abcdef";

在内存中是一个字符一个字符地存储

 数组与字符串_第1张图片

数组与字符串_第2张图片

'\0'会自动往里面放。如果你限定了数组元素个数,就不会放'\0',说明'\0'也要占一个空间。

数组与字符串_第3张图片

按照一般的数组初始化方式进行初始化,就会出现下面这种情况:

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;
}

数组与字符串_第4张图片

你可能感兴趣的:(C,-,初阶,c语言)