描述
编写函数:查找某个字符的所有位置。
函数原型:void FindAllChar(char *s,char ch,int *posSet,int *posSetSize);
s 表示待查字符串
ch 表示待查字符
posSet 表示待查字符的所有位置集合。 要修改,传地址。数组名已经是地址。
posSetSize 表示集合的大小。要修改,传地址。 //到了这儿才写函数参数的说明,老师,。。。。。
调试代码如下:
#include <stdio.h>
int main()
{
void FindAllChar(char *,char ch,int *posSet,int *posSetSize);
char s[1024],ch;
int posSet[1024],posSetSize=0;//开始为0,表示没有
scanf("%s%*c%c",s,&ch);
FindAllChar(s,ch,posSet,&posSetSize);
if(posSetSize==0)
printf(“npos”);
else
{
printf("%d",posSet[0]);
for(int i=1;i<posSetSize;i++)
printf(" %d",posSet[i]);
}
return 0;
}
输入
输入一个字符串和一个字符,中间用一个空格分开。只有英文字符。
输出
输出所有的位置,数据之间用一个空格分开。
样例输入
aaba a
样例输出
0 1 3
#include <stdio.h>
int main()
{
void FindAllChar(char *,char ch,int *posSet,int *posSetSize);
char s[1024],ch;
int posSet[1024],posSetSize=0;//开始为0,表示没有
scanf("%s%*c%c",s,&ch);
FindAllChar(s,ch,posSet,&posSetSize);
if(posSetSize==0)
printf("npos");
else
{
printf("%d",posSet[0]);
for(int i=1;i<posSetSize;i++)
printf(" %d",posSet[i]);
}
return 0;
}
void FindAllChar(char *s,char ch,int *posSet,int *posSetSize)
{
int i,j=0;
for(i=0;s[i]!='\0';i++)
if(s[i]==ch)
{
posSet[j]=i;
j++;
}
*posSetSize=j;
}