c语言 统计子字符串在字符串出现的次数

#include<stdio.h> #include<string.h> void main() { char a[80] = "tyiunabtjagxzbcabcceeabrgtuABctyABtabuayb"; char b[3] = "ab"; int i =0,j,k,count = 0; // count 做统计 a字符串的实际字符个数.. int cnt =0; // 统计子字符的个数 .. while(i<80) { if(a[i]!='\0')count++; i++; } printf("父字符的个数是%d\n",count); for(i =0 ; i <count;i++) for(j=0;a[i]==b[j] && b[j]!='\0';j++) { if(b[j+1] == '\0') cnt++; break; } printf("子字符的个数是%d\n",cnt); } // 为什么 显示出来的 结果 是 0 ??

做了点修改. 加粗部分你看看. #include<stdio.h> #include<string.h> void main() { char a[80] = "tyiunabtjagxzbcabcceeabrgtuABctyABtabuayb"; char b[3] = "ab"; int i =0,j,k,count = 0; // count 做统计 a字符串的实际字符个数.. int cnt =0; // 统计子字符的个数 .. while(i<80) { if(a[i]!='\0') count++; i++; } printf("父字符的个数是%d\n",count); for(i =0 ; i <count; i++) { for(j=0; a[ i+j ] == b[ j ] && b[j]!='\0';j++) //a字符串不能一直拿一个字符和b字符串比较... { if(b[j+1] == '\0') cnt++; //break; //不需要. } } printf("子字符的个数是%d\n",cnt); }
温馨提示:内容为网友见解,仅供参考
第1个回答  2019-10-09
做了点修改.
加粗部分你看看.#include<stdio.h>
#include<string.h>
void
main()
{
char
a[80]
=
"tyiunabtjagxzbcabcceeabrgtuABctyABtabuayb";
char
b[3]
=
"ab";
int
i
=0,j,k,count
=
0;
//
count
做统计
a字符串的实际字符个数..
int
cnt
=0;
//
统计子字符的个数
..
while(i<80)
{
if(a[i]!='\0')
count++;
i++;
}
printf("父字符的个数是%d\n",count);
for(i
=0
;
i
<count;
i++)
{
for(j=0;
a[
i+j
]
==
b[
j
]
&&
b[j]!='\0';j++)
//a字符串不能一直拿一个字符和b字符串比较...
{
if(b[j+1]
==
'\0')
cnt++;
//break;
//不需要.
}
}
printf("子字符的个数是%d\n",cnt);
}
第2个回答  2020-07-28
#include <string.h>

int strstr_cnt(char *s1, char *s2) {
int i = 0, cnt=0;
char *pos = s1;
while(pos != NULL) {
//更新pos
pos = strstr(pos, s2);
if(pos != NULL){
//匹配成功之后再偏移子字符串长度
pos += strlen(s2);
cnt++;
}
}
printf("sub string count is:%d\n", cnt);
return cnt;
}

c语言 统计子字符串在字符串出现的次数
做了点修改. 加粗部分你看看. #include<stdio.h> #include<string.h> void main() { char a[80] = "tyiunabtjagxzbcabcceeabrgtuABctyABtabuayb"; char b[3] = "ab"; int i =0,j,k,count = 0; \/\/ count 做统计 a字符串的实际字符个数.. int cnt =0; \/\/ 统计子...

用c语言怎么统计字符串中某一字符出现的次数
1、连接运算 concat(s1,s2,s3…sn) 相当于s1+s2+s3+…+sn.例:concat(‘11’,'aa’)='11aa’;2、求子串。 Copy(s,I,I) 从字符串s中截取第I个字符开始后的长度为l的子串。例:copy(‘abdag’,2,3)=’bda’3、删除子串。过程 Delete(s,I,l) 从字符串s中删除第I个字符开始后的长...

C语言统计substr所指的子符串在str所指的字符串中出现的次数
从 str[] 长字符串里 找 substr[] 目标字符串,短字符串 出现的个数。for(i = 0;str[i];i++) \/\/ 依次从 第 i 个位置 开始 找。for(j=i,k=0;substr[k]==str[j];k++,j++)\/\/ j 是 str 里的字符位置,j=i+0,i+1,i+2 ...\/\/ k 是 substr 里的字符位置, k=0,1,...

...输入一个字符串,统计其中各个字符出现的次数
els_count = 0; \/\/ 其他字符个数 while((c = getchar()) != '\\n') { \/\/ 读取输入直到换行符 \/\/ 判断字符类型并更新计数 if((c >= '0' && c <= '9')) { num_count++;} else if((c >= 'a' && c <= 'z')) { littlealp_count++;} else if((c >= 'A' && c ...

C语言:编程统计字符串s在字符串str中出现的次数
以下是 C 语言实现统计字符串 s 在字符串 str 中出现的次数的程序:```c include <stdio.h> include <string.h> \/\/ 统计字符串 s 在字符串 str 中出现的次数 int countSubstring(char str[], char s[]) { int n = strlen(str); \/\/ 获取字符串 str 的长度 int m = strlen(s); ...

C语言统计substr所指的子符串在str所指的字符串中出现的次数
代码在str中不断的扫描substr,当找到第一个相同字符时,则循环比较str与substr剩余的字符串,如果substr中的所有字符都在str中出现(通过substr[k+1] == '\\0'判断substr是否已判断到最后一个字符),则判断为找到一次substr的完全匹配,把发现次数加1(num++).然后回到第一层循环,直到扫描完str的每个...

...一个字符,统计该字符在字符串中出现的次数。写出程序,加急
include<stdio.h> main(){char s[99],c;int i=0,n=0;printf("输入字符串(按Enter结束):\\n");gets(s);printf("输入字符(按Enter结束):");c=getchar();for(i=0;i<99;i++){if(c==s[i])n++;} printf("字符串%s中字符%c出现%d次",s,c,n);} \/\/看时间,你是用不到了...

...查找一个字符串在另一个字符串中出现的次数,谢谢大家了!
int[]times=new int[n];\/\/保存每种字符的出现次数 for(char c:cs){ times[list.indexOf(c)]++;} for(int i=0;i<n;i++){ map.put(""+list.get(i),times);} return map;} \/\/展示 public static void show(Map<String,Integer>map){ for(Map.Entry i:map.entrySet()){ System...

C语言递归函数实现查找某个字符在字符串中出现的次数?
include <stdio.h> int count(char* s, char x);int main(){ char s[80], x;gets(s);scanf("\\n%c", &x);printf("%d", count(s, x));} int count(char* s, char x){ static int n = 0;if (*s){ if (*s == x)n++;count(s + 1, x);} return n;} ...

c语言统计字符串中每个字符出现的次数
\/\/重新指向子串 break;\/\/退出 } } } return n;} int main(void){ char a[81],b[81];\/\/定义两个字符数组 printf("输入原字符串:");fgets(a,81,stdin);\/\/输入 printf("输入子字符串:");fgets(b,81,stdin);printf("找到:%d\\n",findsub(a,b));system("pause");return 0;} ...

相似回答