字符串操作
字符串操作中我们平时需要哪些功能的函数哪?
1 从字符串中找出某个字符
char *strchr(char *s, int c); 从字符串开始位置查找ansii为c 的字符指针返回
char *strrchr(char *s,int c); 从字符串结尾出开始往前找,找到返回指针。
从字符串中找出一个字符集,而不是一个字符,
char *strpbrk(char *s,char *accept)
解释:strpbrk("zhengkan @is @a @chinese!"," @");从第一个字段中找到空格或@都返回出现字符的地址,
2 从字符串中找出某个字符串
char *strstr(char *s1,char *s2); 从字符串s1开始位置查找s2,如果找到返回s1中出现s2的首地址
3 将字符串通过某些字符进行分割
char *strtok_r(char *s,char *delim,char **save_ptr)
示例:
#include
#include
int main()
{
char buf[] = "sudo apt-get install vim\nmima is kanison";
//这里赋值的时候应该为buf[] 而不应该为buf*
char *argv[10];
char *p,*sv;
char delim[] = " \t\n";
int i=0;
p = strtok_r(buf,delim,&sv); //这里被截断之后的字符串存在sv中。
printf("hello : %s\n",p);
while(p != 0)
{
argv[i++] = p;
p = strtok_r(NULL,delim,&sv);
//当循环中调用strtok_r()参数1为空指针时,strtok_r()将检查第三个参数,判断从哪里进行分解。
}
argv[i]=0;
for(;i>=0;i--)
{
if(argv[i-1] != 0)
printf("argv[%d]='%s' ;\n",i-1,argv[i]);
}
return 0;
}
4 字符串比较
int strcmp(char *s1,char *s2);
int strncmp(char *s1,char *s2); //比较前n个字符串 返回值 >0 <0 ==0
5 字符串复制
strcpy(char *des,char *src); des是用户自己定义的足够大的字符串,如果des空间不足那就错了。所以建议用下面的复制函数
char *strdup(char *s);复制s 系统将动态开辟一个strlen(s)+1的内存,将s复制到里面返回新开辟的字符串地址,如果是用strdup复制,那么用完之后可以free(char *);
6 字符串连接
strcat(char *s1,char *s2); 将s2连接到s1后面。
阅读(562) | 评论(0) | 转发(0) |