本文总结学习期间经常使用的字符串函数,方便需要时进行查阅。
一 puts函数(字符串输出函数)
一般形式:puts(字符数组)
作用:输出一个字符串(以‘\0’结束的字符序列)。
二 gets函数(字符串输入函数)
一般形式:gets(字符数组)
作用:从终端输入一个字符串到字符数组函数。
#include <stdio.h>
int main()
{
char s[100];
gets(s);
puts(s);
return 0;
}
三 strcpy
一般形式:strcpy(字符数组1,字符串2)
作用:将字符串2复制到字符数组1中。
四 strcmp()简介
1. 函数原型
int strcmp(const char *s1,const char *s2);
2. 参数
s1– 指向字符串的指针
s2– 指向字符串的指针
3. 功能
比较字符串s1和s2。
4. 头文件
#include <string.h>
5. 返回值
自左向右逐个按照ASCII码值进行比较,直到出现不同的字符或遇’\0’为止。
如果返回值 < 0,则表示 s1 小于 s2。
如果返回值 > 0,则表示 s1 大于 s2。
如果返回值 = 0,则表示 s1 等于 s2。
#include <stdio.h>
#include <string.h>
int main(void)
{
char *a = "English";
char *b = "ENGLISH";
char *c = "english";
char *d = "English";
//strcmp()只能比较字符串, 其他形式的参数不能比较
printf("strcmp(a, b):%d\n", strcmp(a, b));//字符串之间的比较
printf("strcmp(a, c):%d\n", strcmp(a, c));
printf("strcmp(a, d):%d\n", strcmp(a, d));
printf("strcmp(a, \"English\"):%d\n", strcmp(a, "English"));
printf("strcmp(&a[2], \"glish\"):%d\n", strcmp(&a[2], "glish"));
return 0;
}
strcmp(a, b):1
strcmp(a, c):-1
strcmp(a, d):0
strcmp(a, "English"):0
strcmp(&a[2], "glish"):0
五
strstr
()函数:
strstr
(str1,str2)函数用于判断字符串str2是否是str1的子串。如果是,则返回str2在str1中首次出现的地址:否则,返回NULL。
在库函数中
strstr
()函数的原型是
char
*
strstr
(
const
char
* str1,
const
char
* str2 ),包含在头文件<string.h>中。
思路:1.判空及判断str1与str2的长度比较;
2. 从字符串str1和str2开始遍历,直到str2结束,即遇见str2的
'\0'
,寻找成功,返回str1与str2第一个字符相等的首地址,否则,返回NULL;
3.在第二种情况下,在相同几步之后有可能有不相等的情况,如:“12234”与“234”,则将开始的str1++,重复第2步;
4..在这里写代码时需注意的几点:
const
(保证了数据的安全性);
char
*(为了实现链式访问);重复时的处理即第三种情况。相信,细节乃画龙点睛之笔喔!
strchr(s1,s2)是查找字符s2在字符串s1中的位置,返回地址;
strstr(s1,s2)是看s2是否是s1的子串,返回的是第一个字符的地址;