gpt4 book ai didi

c - 读取字符串中的字符串并计算字符串1在字符串2中出现的次数

转载 作者:行者123 更新时间:2023-11-30 18:49:43 25 4
gpt4 key购买 nike

我必须用 C 语言编写一个函数来计算输入字符串中字符串“mystring”的出现次数。

用户将输入一个包含短语“mystring”的字符串,字符串中任何地方都没有空格,程序将计算“mystring”在输入字符串中被读取的次数。

这是我到目前为止编写的代码,但它无法正常工作。

int substr_count(char *srcString, char *subString)
{
int i = 0; // counter variable
int countOccurence = 0;

while(srcString[i] != 0) // loop until hit a null in srcString
{
if (srcString[i] == subString[i])
{
countOccurence++;
}
i++; // increment to next position in srcString
}
return countOccurence; // return value of occurences
}

int main(void)
{
char srcString[200] = ""; //empty string
char subString[8] = "mystring"; //substring
int get_count = 0;

scanf("%s", srcString); //get a string from input keyboard

get_count = substr_count(srcString, subString);

printf("%s occurs %d times in %s\n", subString, get_count, srcString);
}

最佳答案

使用strstr像这样:

#include <stdio.h>
#include <string.h>

int substr_count(const char *srcString, const char *subString){
int countOccurence = 0;
size_t sub_len = strlen(subString);
const char *p = srcString;

while(p = strstr(p, subString)){//if NOT NULL, found it
++countOccurence;
p += sub_len;//set next search point
}
return countOccurence;
}

int main(void){
char srcString[200] = "";
char subString[] = "mystring";//const *char subString = "mystring"
int get_count = 0;

scanf("%199s", srcString);//199 : Set limits
get_count = substr_count(srcString, subString);

printf("%s occurs %d times in %s\n", subString, get_count, srcString);
}

关于c - 读取字符串中的字符串并计算字符串1在字符串2中出现的次数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42047307/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com