字符串函数(二) strchr和strrchr 搜索函数

Strchr: char * strchr (const char *s, int c)  查找字符c第一次在字符串s中的位置,返回位置指针;若未发现,返回NULL.(从左向右)

Strrchr 从右向左

 1 #include <stdio.h>
 2 #include <string.h>
 3 #include <stdlib.h>
 4 int main(void)
 5 {
 6     char str[] = "I welcome any ideas from readers, of course.";
 7     char *lc = strchr(str, 'o');
 8     char *t = (char*) malloc (strlen(lc)+1);
 9     strcpy (t,lc);
10     printf("t: %s\n", lc);
11     printf("strchr: %s\n", lc);
12     char *rc = strrchr(str, 'o');
13     printf("strrchr: %s\n", rc);
14     char c=*lc;
15     *lc = 0;
16     printf("%s\n", str);
17 
18     return 0;
19 }

 

上述代码第14到16行 想要达成的目的是 保留搜索到’o'字符之前的字符串 因为将原有的字符'o' 用结束符'\0'代替 从而达到截取效果

最后还需要注意的是,为什么函数的“c”参数是 int 类型,而不是“char”类型呢?

其实原因很简单,这里用的是字符的 ASCII 码(因为每个字符都对应着一个 ASCII 码),这样在传值的时候既可以传“char”类型的值,又可以传“int”类型的值(0~127)。

 

posted @ 2020-02-02 21:25  Cs-老oier  阅读(266)  评论(0)    收藏  举报