c语言如何查找字符串?
发布网友
发布时间:2022-03-02 08:48
我来回答
共3个回答
热心网友
时间:2022-03-02 10:17
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() 函数。
热心网友
时间:2022-03-02 11:35
不用自己写,有一个函数叫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
热心网友
时间:2022-03-02 13:10
#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开始)。
C语言中如何查找字符串?
用strstr这个函数\r\n\r\n包含文件:string.h\r\n函数名: strstr \r\n函数原型:extern char *strstr(char *str1, char *str2);\r\n功能:找出str2字符串在str1字符串中第一次出现的位置(不包括str2的串结束符)。\r\n返回值:返回该位置的指针,如找不到,返回空指针。\r\n\r\n...
c语言如何查找字符串?
C语言strchr()函数:查找某字符在字符串中首次出现的位置 头文件:#include <string.h> strchr() 用来查找某字符在字符串中首次出现的位置,其原型为:char * strchr (const char *str, int c);【参数】str 为要查找的字符串,c 为要查找的字符。strchr() 将会找出 str 字符串中第一次出现的...
c语言查找字符串
1、首先,定义一个字符数组变量,可以这么写。2、然后输入字符的长度。3、接下来就可以直接赋值字符串。4、也可以定义多个字符串,可以写成这样。5、使用字符串时,建议加上该头文件。6、此外,还可以使用函数为其初始化。注意事项:尽管形式字符串可以有任意(但有限)的长度,实际语言的字符串的长度经...
用C语言编写一个程序查找一个字符串在另一个字符串中出现的次数怎么写...
实现代码如下:include <stdio.h>#include <stdlib.h>int main(){ char S[100],T[20]; char ch1,ch2; printf("请输入主字符串:\n"); ch1=getchar(); int i=0; while(ch1!='\n') { S[i]=ch1; i++; ch1=getchar(); } printf("请输入要...
C语言如何查找 某字符串 在所给的文本文件中的哪一行,并输出该行文字...
打开文件,如果文件未找到,报错,结束 fopen 输入待查的字符串,存到变量中 gets 逐行循环读取文件,直到文件结束 fgets 检查字符串是否在该行中,如果在,则输出该行,关闭文件,结束。否则继续查找 strstr 循环结束,输出未找到该字符串。关闭文件。fclose 相关代码和运行效果如下图:...
用c语言在一个字符串中查找另一个字符串,并统计个数
intmain(){ charS[100],T[20];charch1,ch2;printf("请输入主字符串:\n");ch1=getchar();inti=0;while(ch1!='\n'){ S[i]=ch1;i++;ch1=getchar();} printf("请输入要筛选的字符串:\n");ch2=getchar();intj=0;while(ch2!='\n...
C语言中怎么查找字符串数组中的某个字符?
错误在于你判断了第一个非@字符时就已经输出没有字符@退出循环了所以不会检测@了。改成下面就行了:#include <stdio.h> include <string.h> int main(){ char sh[100],n=0;gets(sh);for(int i=0;sh[i];i++)if(sh[i]=='@')n++;if(n==0)printf("没有字符 @\n");else print...
C语言中在字符串中查找指定字符串
//str1移到下一位 if (j == 2) //如果比较了三次都相等则找到一个 { index[num] = i - 2; //记录str1下标 num ++; } } else { i = i - j; //有不相等的跳出,i回到比较前的值 break; } } printf("共找到:%d个\n",num); printf("下标分别是:"); for (i = 0; ...
C语言中怎么查找字符串数组中的某个字符?
程序有误,修改如下:include <stdio.h> include <string.h> void main(){ char sh[20];gets(sh);for(int i=0;i<20;i++){ if(sh[i]='@'){ printf("判断出有字符@\n");break;} if(sh[i]='\0')printf("无字符@\n");} } ...
C语言查找字符串位置函数。请高手帮忙解决
int main(void) { char s1[80],s2[80];int n;printf("请输入一个字符串:");gets(s1);printf("请输入你要查找的字符串:");gets(s2);n=findstr(s1,s2);printf("%s在%s里共有%d个\n",s2,s1,n);return 0;} int findstr(char *s_str,char *d_str) { int i,j,k,count=0;c...