入一组字符和一个目标字符,编写程序找出目标字符第一次出现和最后一次出现的位置并输出。初始位置从0开始。

输入一组字符和一个目标字符,编写程序找出目标字符第一次出现和最后一次出现的位置并输出。初始位置从0开始。如果目标字符不在输入的字符中,则输出-1。例如,输入sdflsadjfl&&&wr12sdfasaa和目标字符s,输出0 21

void judge(char *s,char target)
{
int flag = 0;
for(int i = 0; i < (sizeof(s) / sizeof(s[0])); ++i)
if(s[i] == target)
{
printf("%d ",i);
flag = 1;
break;
}
for(int i = sizeof(s) / sizeof(s[0]) - 1; i >= 0; --i)
if(s[i] == target)
{
printf("%d",i);
flag = 1;
break;
}
if(!flag)
printf("-1");
}

#include "stdio.h"
void main()
{
   char str[100];
   char ch;
   int i=0,start=-1,end = -1;
   gets(str);
   scanf("%c",&ch);
   while(str[i]!='\0'){
           if(str[i]== ch){
               if(start == -1){
                   start = i;    
               }
               end = i;    
           }
           i++;
   }
   printf("第一次出现位置是:%d,最后一次位置:%d",start,end);
}

#include<stdio.h>

int main()
{
char a[20]="12345678901234567890";
char b='9';
int sta=0,end=19;
for(; sta<20; sta++)
if(a[sta]==b)
break;
for(; end>sta; end--)
if(a[end]==b)
break;
printf("开始于%d,结束于%d。",sta+1,end+1);
return 0;
}
试试我这个。