c语言如何固定字符显示位数字,查寻一个指定字符在给定字符串中的出现的位置(和个数)...

查找一个指定字符在给定字符串中的出现的位置(和个数)

这个只能查找第一个字符额

求教如何能查询到给定字符在字符串中的所有位置,并计数额。。

111324155.gif

#include

#define SIZE 80

int main(void)

{

char s1[SIZE],ch;

int i,a;

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

gets(s1);

printf("输入待查找的字符:");

scanf("%c",&ch);

for(i=0;s1[i]!=ch&&i

i=i+1;

if(i>SIZE)

i=0;

if(i>0)

printf("待查字符出现在字符串中的%d位置处\n",i);

else

printf("字符串中没有待查找的字符\n");

return 0;

}

谢谢

------解决方案--------------------

写个伪代码:

for(每个字符位置){

如果(发现 字符 ch)

{

计数加一;输出数据位置;

}

否则/** 没发现,**/

什么也不做;

}

输出计数;

------解决方案--------------------

//返回字符在字符串中出现的位置,如果没找到返回NULL

int* findchar(char* str, char c, int& count)

{

if( str == NULL )

return NULL;

count = 0;

for(int i(0);str[i]!='\0';i++)

{

if( str[i] == c )

count++;

}

if( count<1 )

return NULL;

int* pos = new int[count];

int index = 0;

for(int i(0);str[i]!='\0';i++)

{

if( str[i] == c )

{

pos[index] = i;

index++;

}

}

return pos;

}

int main()

{

int count;

char _str[100];

char c;

cout<

cin>>_str;

cout<

cin>>c;

int* pos = findchar(_str,c,count);

if( pos )

{

cout<

cout<

for(int i(0);i

cout<

cout<

}

else

cout<

应该ok的,你试试吧

------解决方案--------------------

int num(char *p, char *p2, int *n)

{

char *temp;    //临时指针用来做判断

int k = strlen(p);//算出字符串Str的长度;也就是strinp的长度;

while (p2 != '\0')   //如果到了那个比较长的字符串的末尾跳出循环

{

temp =strstr(p2, p);

if(temp!= NULL)  //判断字符串STROUT。里面是否存在str  没有存放的话就等于null下面就直接跳出循环

{

(*n)++;     //调入进来的n++;

p2 = p2 + strlen(p);

continue;

}

else

{

break;

}

}

}

int main()

{

char strinp[] = "crazyspopcorn";  //定义一个字符型数组变量

char strout[] = "crazyspopcornzuishuaiqilecrazyspopcornzuipiaole";

int n = 0;

num(strinp, strout, &n);

printf("%d",n);

system("pause");

}

头文件的话。楼主自家加哦~~这是调用函数的。楼主可以自己改写成一个函数的。希望能帮助到你;谢谢里面都有注释的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值