龙空技术网

每日一道c语言编程题,第二十五题,判断子串是否出现及所在位置

于桐科技 105

前言:

当前我们对“c语言删除字符串中的子串”大约比较关心,咱们都需要知道一些“c语言删除字符串中的子串”的相关资讯。那么小编在网络上汇集了一些关于“c语言删除字符串中的子串””的相关文章,希望小伙伴们能喜欢,各位老铁们一起来学习一下吧!

编写一个程序,输入一个字符串和一个子串,判断该子串是否在字符串中出现,如果出现则输出其出现的位置。

#include <stdio.h>

#include <string.h>

int main()

{

char str[100], sub[20];

char *p;

int pos = 0;

printf("请输入一个字符串:");

fgets(str, 100, stdin);

str[strlen(str)-1] = '\0';

printf("请输入一个子串:");

fgets(sub, 20, stdin);

sub[strlen(sub)-1] = '\0';

p = strstr(str, sub);

while(p != NULL)

{

pos = p - str + 1;

printf("子串出现的位置为:%d\n", pos);

p = strstr(p+1, sub);

}

if(pos == 0)

{

printf("子串未出现\n");

}

return 0;

}

首先在主函数中定义字符串str、子串sub和指针p,以及整型变量pos,用于记录子串出现的位置。

然后使用fgets函数分别读取用户输入的字符串和子串,并在结尾处手动加上'\0',以确保字符串的结尾正确。

接下来使用strstr函数在字符串中查找子串的位置。如果找到了,则输出其出现的位置,并继续查找下一个位置,直到字符串中不再出现子串。如果未找到,则输出“子串未出现”这个提示信息。

最后在主函数的末尾返回0,表示程序正常结束。

需要注意的是,在使用fgets函数读取字符串时,由于fgets函数会把换行符也读入字符串中,因此我们需要在字符串结尾处手动加上'\0',以确保字符串的结尾正确。此外,由于字符串中可能存在空格或其他特殊字符,因此我们需要使用更加严谨的方法来判断子串是否出现在字符串中,例如使用strstr函数。


标签: #c语言删除字符串中的子串 #c语言判断字符串是否为汉字串 #查找子字符串的算法c语言 #c语言字符串查找子串的代码 #c 查找字符串中指定字符的位置是什么