C语言--字符串处理函数的使用
2015-10-20 17:06
435 查看
一、字符串输出函数 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
相关文章推荐
- VC++ 关机代码
- C++ 11语法甜点1
- 【经典游戏编程题】C语言:编写一个棋盘游戏,与二维数组结合
- C语言(3) 运算符及优先级
- C++单根类的实现
- c++类静态成员详解
- C++ 11完美转发
- C++ 11 auto & decltype
- C++ 11 Lambda表达式
- C++ 11右值引用
- C++内存对齐问题
- C++中栈和队列
- wolfssl进行rsa加密
- C++继承经典例子
- C语言实现大整数乘法代码的完整代码及运行结果
- CaffeNet C++ Classification 例子运行方法
- C++中delete和delete[]的区别
- 基本C++概念
- C语言中固定大小的数据类型的输入和输出
- kmp算法--c++ code