c语言如何查找字符串?

 我来答
蝈蝈蝈蝈813
2018-04-10 · TA获得超过9690个赞
知道小有建树答主
回答量:356
采纳率:85%
帮助的人:15.5万
展开全部

C语言中的标准函数库中的strchr()函数可以实现查找字符串中的某个字符。

C语言strchr()函数:

查找某字符在字符串中首次出现的位置

头文件:#include <string.h>

strchr() 用来查找某字符在字符串中首次出现的位置,其原型为:

char * strchr (const char *str, int c);

【参数】str 为要查找的字符串,c 为要查找的字符。

strchr() 将会找出 str 字符串中第一次出现的字符 c 的地址,然后将该地址返回。

注意:字符串 str 的结束标志 NUL 也会被纳入检索范围,所以 str 的组后一个字符也可以被定位。

返回值】如果找到指定的字符则返回该字符所在地址,否则返回 NULL。

返回的地址是字符串在内存中随机分配的地址再加上你所搜索的字符在字符串位置。设字符在字符串中首次出现的位置为 i,那么返回的地址可以理解为 str + i。

提示:如果希望查找某字符在字符串中最后一次出现的位置,可以使用 strrchr() 函数。

百度网友28e9be2
2017-12-27 · TA获得超过609个赞
知道小有建树答主
回答量:499
采纳率:100%
帮助的人:604万
展开全部
不用自己写,有一个函数叫strstr,原型是 char *strstr(char *str1, char *str2),功能是找出str2字符串在str1字符串中第一次出现的位置。 可以这样写:
char *p=strstr(a,b);
if(NULL != p)
{
//a中不存在b,添加相应代码
}
else
{
//a中存在b,添加相应代码
}
返回值p为a中第一次出现b的位置
这个函数要包含头文件string.h
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
专心难找眼睁Q
2018-04-03 · TA获得超过4814个赞
知道小有建树答主
回答量:25
采纳率:100%
帮助的人:3470
展开全部

#include <stdio.h>
#define SIZE 81
char *stringIn(char *str1, char *str2);

int main(void)
{
char string1[SIZE];
char string2[SIZE];
char *p;

printf ("输入一个字符串:\n");
gets(string1);

while (*string1 != 'q')
{
printf("输入要查找的字符串:\n");
gets(string2);
p = stringIn(string1, string2);

if (p)
{
printf("找到字符串:\n");
puts(p);
}
else
printf("未找到字符串。\n");

printf ("\n输入一个字符串:\n");
gets(string1);
} // endof while

printf("程序结束\n");

return 0;
} // endof main


char *stringIn(char *str1, char *str2)
{
char *p1 = str1;
char *p2 = str2;

if ('\0'==*str1 || '\0'==*str2)
return NULL;

while (1)
{
if (*str1 == *str2) // 如果str1的字符与str2字符相同
{
if ('\0' == *++str2) // 判断str2是否结束
return p1;
if ('\0' == *++str1) // 若str1结束,str2未结束,则返回空指针
return NULL;
} // endof if
else
{
if ('\0' == *++str1)
return NULL;
p1 = str1;
str2 = p2;
} // endof else
} // endof while
} // endof stringIn


输入一个字符,再输入一个以回车结束的字符串(少于80 个字符),在字符串中查找该字符。如果找到,则输出该字符在字符串中所对应的最大下标(下标从0开始)。

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式