C语言的一道题。

编写程序实现在一个字符串中查找指定的字符,并输出指定的字符在字符串中出现的次数及位置,如果该字符串中不包含指定的字符,请输出提示信息。
编程提示:
1.定义两个一维数组,a字符数组用来存放字符串,b整数数组用来存放指定的字符在字符串中出现的位置(即对应的下标)。
2.定义一个标志变量flag,并初始化flag的值为0。
3.用scanf或者gets函数为字符数组赋一个字符串。
4.在循环中对字符数组的每个元素和指定字符ch进行匹配判断,如果相同,就把其下标依次存放在数组b中,并置flag的值为1。
5.循环退出后判断标志变量flag的值,如果仍为0,说明字符串中没出现指定的字符,否则,就输出该字符在字符串中出现的次数和位置。

#include<stdio.h>
#include<string.h>
int main()
{
 int i,count,length,flag=0;
 //定义一个标志变量flag,并初始化flag的值为0。
 int b[100];//b整数数组用来存放指定的字符
 //在字符串中出现的位置(即对应的下标)。
 char a[100],ch;//a字符数组用来存放字符串
 printf("请输入一个字符串:\n");
 gets(a);
 printf("请输入要匹配的字符:\n");
 ch=getchar();
 length=strlen(a);//测长度
 count=0;
 /*开始比较*/
 for(i=0;i<length;i++)
 {
  if(a[i]==ch)
  {
   b[count]=i;
   count++;
   flag=1;
  }
 }
 if(flag)//判断标志变量flag的值
 {
  printf("字符'%c'在字符串中出现了%d次!\n",ch);
  printf("它的位置下标为:\n",count);
  for(i=0;i<count;i++)
  {
   printf("%d ",b[i]);
  }
  printf("\n");
 }
 else
 {
  printf("字符串中没出现指定的字符:%c\n",ch);
 }
 return 0;
}

运行截图:

温馨提示:内容为网友见解,仅供参考
无其他回答
相似回答
大家正在搜