c语言字符数组及使用方法

一、字符数组和字符串

用来存放字符的数组称为字符数组,例如:

 1. char a[10];  //一维字符数组 
 2. char b[5][10];  //二维字符数组 
 3. char c[20] = { 'c', '  ', 'p', 'r', 'o', 'g', 'r', 'a','m' };  // 给部分数组元素赋值
 4. char d[] = { 'c', ' ', 'p', 'r', 'o', 'g', 'r', 'a', 'm' };  //对全体元素赋值时可以省去长度 

字符数组实际上是一系列字符的集合,也就是字符串(String)。在 C 语言中,没有专门的字符串变量,没有 string 类型,通常就用一个字符数组来存放一个字符串。

在 C 语言中,字符串总是以’\0’作为结尾,所以’\0’也被称为字符串结束标志,或者字符串结束符
由" "包围的字符串会自动在末尾添加’\0’。例如,"abc"看起来只包含了 3 个字符但C 语言会 在最后添加一个’\0’,但我们感受不到。
而由‘ ’赋值的字符串则不会在末尾自动加 \0,若要以%s输出,则会输出错误,应该在末尾手动添加“\0”.

二、字符数组的输入

在 C 语言中,有两个函数可以输入字符串,它们分别是:
 scanf():通过格式控制符%s 输入字符串。除了字符串,scanf() 还能输入其他类型的数据。

char str[50];
scanf(%s”,str);

 gets():直接输入字符串,并且只能输入字符串。

char str[50];
gets(str);

但是,scanf() 和 gets() 是有区别的: 
scanf() 读取字符串时以空格为分隔,遇到空格就认为当前字符串结束了,所以无法读取含有空格的字符串。 
gets() 认为空格也是字符串的一部分,只有遇到回车键时才认为字符串输入结束,所以,不管输入了多少个空 格,只要不按下回车键,对 gets() 来说就是一个完整的字符串。所以可以用 gets() 用来读取一整行字符串。

三、字符数组的输出

在 C 语言中,有两个函数可以在控制台(显示器)上输出字符串,它们分别是: 
puts():输出字符串并自动换行,该函数只能输出字符串。 

4.  char str[30]={"c,program"};
5.  puts(str);

printf():通过格式控制符%s 输出字符串,不能自动换行。

1 char str[30]={"c,program"};
2 printf("%s\n",str);

四、C 语言字符串处理函数

string.h 是一个专门用来处理字符串的头文件,它包含了很多字符串处理函数以下例举了几个常用的函数,
在使用的时候不要忘记添加头文件

#include<string.h>

1、字符串连接函数 strcat()

strcat 是 string catenate 的缩写,意思是把两个字符串拼接在一起,语法格式为:

#include<stdio.h>
#include<string.h>
int main()
{
char str1={"hello "};
char str2;
gets(str2);
strcat(str1,str2);
puts(str1);
return 0;
}

2、字符串复制函数 strcpy()

strcpy 是 string copy 的缩写,意思是字符串复制,也即将字符串从一个地方复制到另外一个地方,

#include<stdio.h>
#include<string.h>
int main()
{
char str1={"hello "};
char str2={“world”}strcpy(str1,str2);
puts(str1);
return 0;
}

将 str2 复制到 str1 后,str1 中原来的内容就被覆盖了。

另外,strcpy() 要求 str1 要有足够的长度,否则不能全部装入所拷贝的字符

3、字符串比较函数 strcmp()

strcmp 是 string compare 的缩写,意思是字符串比较
两个字符从第一个字符开始比较,若相同进行下一个字符的比较,直到得到结果
返回值:若str1 和 str2 相同,则返回 0;若str1 大于str2,则返回大于 0 的 值;若 str1 小于 str2,则返回小于 0 的值。

#include<stdio.h>
#include<string.h>
int main()
{
char str1={"hello "};
char str2={“world”}printf("%d",strcmp(str1, str2));
return 0;
}

4、字符串测长函数 strlen()

测量字符串的长度的函数

#include<stdio.h>
#include<string.h>
int main()
{
char str1={"hello "};
printf("%d",strlen(str1, str2));
return 0;
}
发布了6 篇原创文章 · 获赞 5 · 访问量 33

猜你喜欢

转载自blog.csdn.net/qq_45930294/article/details/105571904