一、字符串输出函数 puts
格式: puts(字符数组名)
功能 : 把字符数组中的字符串输出到显示器。 即在屏幕上显示该字符串。
//定义一个字符串
char ch[] = "Hello, World!";
//打印
puts(ch);
打印结果:
Hello, World!
注:
puts函数中可以使用转义字符,因此输出结果成为两行。
puts函数完全可以 由 printf函数取代。
当需要按一定格式输出时,通常使用printf函数。
二、字符串输入函数 gets
格式: gets (字符数组名)
功能:从标准输入设备键盘上输入一个字符串。
//定义一个字符串
char ch[20];
//接收
gets(ch);
//输出
puts(ch);
打印结果:
warning: this program uses gets(), which is unsafe.
nihao
nihao
gets与scanf函数的不同:
gets函数得到一个函数值,即为该字符数组的首地址。当输入的字符串中含有空格时, 输出仍为全部字符串。说明gets函数并不以空格作为字 符串输入结束的标志,而只以回车作为输入结束。这是的。
三、字符串连接函数 strcat
格式: strcat(字符数组名1,字符数组名2)
功能:把字符数组2中的字符串连接到字符数组1 中字符串的后面,并删去字符’\0’,函数返回值是字符数组1的首地址。
//定义两个个字符串
char str1[20] = "Hello, ";
char str2[10] = "World!";
//将str2连接到str1后面
strcat(str1, str2);
//打印
puts(str1);
打印结果:
Hello, World!
注:
把初始化赋值的字符数组与动态赋值的字符串连接起来。要注意的是,字符数组1应定义足够的长度,否则不能全部装入被连接的字符串。
四、字符串拷贝函数strcpy
格式: strcpy(字符数组名1,字符数组名2)
功能:把字符数组2中的字符串拷贝到字符数组1中。串结束标志“\0”也一同拷贝。字符数名2, 也可以是一个字符串常量。这时相当于把一个字符串赋予一个字符数组。
//定义两个字符串
char str1[10] = "nihao";
char str2[10] = "wobuhao";
//把str2拷贝到str1
strcpy(str1, str2);
//把str2拷贝到str1会覆盖str1的内容
puts(str1);
打印结果:
wobuhao
注:
strcpy函数要求字符数组1应有足够的长度,否则不能全部装入所拷贝的字符串。
五、字符串比较函数strcmp
格式: strcmp(字符数组名1,字符数组名2)
比较规则:对两个字符串自左至右逐个字符相比(按ASCII码值大小比较),直到出现不同的字符或遇到’\0‘为止。
如果全部字符相同,则认为相等;若出现不相同的字符,则以第一个不相同的字 符的比较结果为准。
如果两个字符串都由英文字母组成,则有一个简单的规律:在英文字典中位置在后面的为 “大”。
还要特别注意:小写字母比大写字母“大”。
返回值:strcmp函数也可用于比较两个字符串常量,或比较数组和字符串常量。
//定义两个字符串
char st1[]="beijing";//北京 b ASCII码值:98
char st2[]="beiping";//北平 p ASCII码值:112
//定义整型变量
int k;
//接收函数返回值
k = strcmp(st1,st2);
//判断
if(k == 0)printf("st1 = st2\n");
if(k > 0) printf("st1 > st2\n");
if(k < 0) printf("st1 < st2\n");
打印结果:
st1 < st2
六、测字符串长度函数strlen
格式:strlen(字符数组名)
功能:测字符串的实际长度(不含字符串结束标志‘\0’)并作为函数返回值。
//定义一个字符串
char str[6] = "nihao";
//定义整型数接收返回值
int len = strlen(str);
//打印
printf("len = %d\n",len);
打印结果:
len = 5
七、fgets()函数的使用
gets的原型:
char* fgets(char* s, int n, FILE* fp);
格式: fgets(数组名,数组长度,stdin)
fgets从输入缓冲区读取一个字符串保存到字符数组中
当输入的字符串的长度大于数组的长度, 此时fgets会自动的把数组的最后一个元素变成‘\0’
当输入的字符串的长度小于数组长度的时候,fgets还会接收回车
//定义一个字符串
char str[5];
//从输入缓冲区获取sizeof(str)个字符,如果实际内容大于数组的容量,fgets()会自动截断
fgets(str, sizeof(str), stdin);
//打印
puts(str);
打印结果:
nihao
niha
八、fputs()函数的使用
fputs(将一指定的字符串写入文件内)
格式:
fputs(数组名,stdout);
相关函数: fopen,fwrite,fscanf,fputc,putc
表头文件: #include<stdio.h>
定义函数:int fputs(const char * s,FILE * stream);
函数说明: fputs()用来将参数s所指的字符串写入到参数stream所指的文件内。
返回值:若成功则返回写出的字符个数,返回EOF则表示有错误发生。
//fputs是不会自动换行
//fputs也不能进行格式化的输出
//puts 可以自动换行
//定义一个字符串
char str[5];
//从输入缓冲区获取sizeof(str)个字符,如果实际内容大于数组的容量,fgets()会自动截断
fgets(str, sizeof(str), stdin);
fputs(str, stdout);
打印结果:
nihao
nihaProgram ended with exit code: 0