C语言字符串处理函数全解析:puts、gets、strcat、strcpy详解
一个选择题大家帮帮忙吧谢谢
请让我读一下,否则我的努力就白费了。有错误吗?基础这么好...选C。
C语言中数组不能用“=”作为整体付。
字符串是连续存储的字符串,在很多属性上与数组类似,但是字符串有其特殊性,那就是可以使用字符串函数。
选项b可以用gets和puts来解释。
选项d:字符以ASCLL代码存储在内存中,以便可以比较。
细节方面还有很多话要说。
更多信息请参见我自己的弦点总结。
它并不完整,但足以满足一般情况。
但有一件事是字符串函数识别\0,它标志着字符串的结尾。
字符串处理函数:字符串函数可分为:字符串输出(puts)、输入(gets)、合并(stract)、复制(strcpy)、比较(strcmp)、转换、复制、搜索(strchr)。
注意:这些是本章示例中的字符串,可以用指针替换。
1字符串输出函数puts:格式:puts(字符数组名);功能:将字符数组中的字符串输出到显示器上。
示例:#include
puts可以完全用printf函数代替,printf通常用于按格式输出时;put()函数用于将字符串写入标准输出设备(屏幕)并将其括在新行中。
其调用格式为:put(s)。
;其中s是字符串变量(字符串数组)或字符串指针的名称。
put()函数与printf("%s\n",s)具有相同的效果。
例4:main(){chars[20],*f;/*定义字符串数组和指针变量*/strcpy(s,"Hello!TurboC2.0");/*分配字符串数组变量*/f="谢谢you";/*字符串指针变量赋值*/puts(s);puts(f);}2字符串输入函数gets:格式:gets(nameof字符数组);功能:使用输入设备的标准键盘输入一个字符串;该函数获取字符数组首地址的函数值;示例:#include
gets()函数用于从标准输入设备(键盘)读取一个字符串以回车符结尾,但汽车符号不属于这个字符串。
调用格式为:gets(s);其中s是字符串变量(字符串数组名称或字符串指针)。
gets(s)函数与scanf("%s",&s)类似,但并不完全相同。
使用scanf("%s",&s)函数输入字符串时出现问题。
如果输入空格,则视为输入字符。
当字符串结束时,空格后面的字符将作为下一个输入元素处理,但gets()函数接收整个输入字符串,直到回车符。
例5main(){chars[20],*f;printf("What'syourname?\n");gets(s);/*等待输入字符串直到回车结束*/puts(s);/*将输入的字符串输出*/puts("Howoldareyou?");gets(f);puts(f);}3字符串连接函数strcat:格式:strcat(字符数组名1,字符数组名称2);功能:将字符数组2中的字符串连接到字符数组1中。
在字符串末尾,删除字符串1中的字符串结束标志“\0”;返回值是数组1的首地址,因此数组1必须有足够的长度;示例:#include
字符编号名称2也可以是字符串常量。
这相当于将一个字符串分配给一个字符数组。
示例:#include
5、字符串比较功能:注:1、逐个字符比较,找出该字符的ASCII码值。
2.当比较特定字符以确定大小时立即停止。
输出非零。
3、如果字符串相同,则输出nullstrcmp:格式:strcmp(字符数组名1,字符数组名2);按照ASCII码的顺序。
比较两个数组中的字符串,并根据函数返回值返回比较结果。
字符串1=字符串2,返回值=0;字符串1>字符串2,返回值>0;字符串1<字符串2,返回值<0>#include
只能使用7位搜索功能strchr:格式:strchr(字符)。
数组名称),要查找的字符);功能:查找该字符在字符串中第一次出现的位置,并返回该字符出现位置的指针,如果该字符不存在则返回NULL,例如:#include
2018年9月计算机二级C语言考点解析:字符串
10.1字符串和字符数组
1.字符数组的定义
定义方法与前面介绍的方法类似,只不过将ARray定义为字符类型。
示例:
Charc[10];
这定义了一个包含10个元素的字符数组c。
2.初始化字符数组
初始化字符数组;可以采用以下方法:
(1)为其中的每个元素分配字符;数组一一对应;
(2)用字符串常量初始化字符数组。
3.字符串
在C语言中,字符串被视为字符数组,可以用一维字符数组来存储;所以字符类型可以是一维数组作为字符串。
多变。
字符串常量是用双引号括起来的字符串。
在C语言中,约定使用'\0'作为字符串的结束标记,会占用内存空间,但'\0'不计入字符串的长度。
'是0。
系统自动在字符串常量中添加“\0”作为终止符。
例如,“clanguage”总共有10个字符,但在内存中占用11个字节,最后一个字节存储“\0”。
4、字符数组的输入输出
(1)按字符输入输出
①在标准输入输出printf中使用%c格式语句。
和scanf字符;
②使用getchar和putchar函数。
示例:
for(i=0;i<10>
scanf(″%c″,&str[i]);/*或str[i]=getchar();*/
str[i]=′\0′;/*字符串标记添加虚拟结尾*/
for(i=0;i<10>
printf(″%c″,str[i]);/*或putchar(str[i]);*/
(2)所有文本输入输出
①在标准输入输出函数printf和scanf中使用%s格式说明符。
输入格式:
charstr[6];
scanf(″%s″,str);
其中str是字符数组的名称,str代表系统自动。
在每行后面添加终止符“\0”。
如果同时输入多行。
用空格或回车符分隔它们。
输入格式:
printf("%s",str);。
然而,您可以手动控制输出字符串所占字段的宽度,如:
printf("%6s",str);/*ifstringhasmorethan6个字符;仍然输出*/
printf(″%-6s″,str);/*只输出前6个字符,其余不输出*/
②使用gets函数输入和输出一个字符串
gets函数用于从终端键盘读取字符,直到遇到换行符。
换行符不是字符串的一部分。
调用模式:
gets(str);
将str作为字符数组名或字符标识符输入后;系统自动改变。
将\0'放在字符串末尾以替换换行符。
如果输入字符串的长度超过了数组指定的长度。
系统会报错。
Puts函数用于在屏幕上显示字符串的内容。
调用模式:
put(str);
str的含义同上。
发行时遇到第一个'\0'结尾时会自动换行。
10.2指向字符串的指针和指向字符串的指针变量
char*strp=″china″;
字符指针变量strp在这里定义;该变量存储字符串第一个字符的地址。
C语言将字符串常量当作字符数组来处理,它在内存中开辟一个字符数组来存储字符串变量,并将字符串的首地址赋给字符指针变量strp。
输出时使用
printf(″%s\n″,strp);
字符串可以通过字符数组名或字符指针变量输出。
对于数字数组,您不能尝试使用数组名称提取其所有元素。
2.字符指针变量和字符数组
字符数组和字符指针变量都是用来存储和操作字符串的,但是它们之间是有区别的。
相同,要点如下:
(1)字符数组包含很多元素;每个元素都有一个字符;字符指针变量永远不会将地址(字符串的首地址)放入字符指针变量中。
(2)对于字符数组;您只能为单个字符赋值。
Charstr[14];
str="IloveChina!";
对于字符指针变量;您可以使用以下方法设置值:
Char*a;
a="IloveChina!";
注意,但是,a不是一个字符,而是字符串的首地址。
(3)设置初始值时;给以下变量赋初始值:
char*a=“IloveChina!”;
等价于:
char*a;
a="我爱中国!";
初始化数组时:
staticcharstr[14]={“IloveChina!”};
charstr[14];
str[]={“我爱中国!”};
也就是说,给变量赋值时可以将整个数组设置为初始值,但不能为整个赋值语句设置值。
(4)定义数组时;内存单元在编译时分配并具有固定的地址。
定义字符指针变量时;为指针变量分配一个可以定位地址值的内存单元;这意味着指针变量可以指向字符数据,但如果没有指定地址值。
那么指针变量并不精确指向任何字符数据。
(5)指针变量的值是可以改变的。
:3。
字符串处理函数
C语言中字符串的串联;虽然没有比较和赋值运算符,但几乎所有版本的C语言都支持相应的运算符。
示例:
(1)strcat函数:连接两个字符数组中的字符串
(2)strcpy函数:字符复制函数
(3)strcmp函数:字符比较函数
(4)strlen函数:测试字符串长度的函数
(5)strlwr功能:将字符串中的大写字母转换为小写
(6)strupr功能:转换字符将中小写字母转换为大写