查找字符串中首个重复出现的小写字母,输出该字母及其在字符串中第一次和第二次出现的位置。必须用指针!

输入一个字符串 查找字符串中首个重复出现的小写字母,在屏幕上输出该字母及其在字符串中第一次和第二次出现的位置。字符的位置从1开始计数。两次出现的位置及其与字母间以冒号分隔。如果没有重复的小写字母,则输出0。
Sample Input 12qwerwQasq
Sample Output w:4:7
必须用指针!必须用指针!必须用指针!必须用指针!必须用指针!

你好,下面的程序可以实现以上功能,最后输出重复出现的小写字母。定义了一个char型指针指向字符串。

#include<stdio.h>
#include<stdlib.h>
#include<string.h>

int main()
{
char string[100];
int times[26];

char *pointer;
char res;

int i;
int j;
int length;

printf("please input string:\n");
scanf("%s",string);

pointer=string;

printf("the string is %s\n",pointer);

for(i=0;i<26;i++)
{
times[i]=0;
}

//char *tmp;
//*tmp=pointer;

//pointer++;

length=strlen(pointer);
printf("the length of the string is %d\n",length);

for(j=0;j<length;j++)
{
if(*pointer<='z' && *pointer>='a')
{
i=*pointer-97;
times[i]++;
if(times[i]==2)
{
res=*pointer;
break;
}
}
pointer++;
}
printf("%c:",res);

pointer=string;

i=0;
for(j=0;j<length;j++)
{
if(*pointer==res)
{
printf("%d",j+1);
i++;
if(i==2)
{
break;
}
printf(":");
}
pointer++;

}
printf("\n");
return 0;
}

运行结果如下,也可以自己跑一下程序,就看到结果了。先输入字符串,最后输出结果。希望能帮助到你。

温馨提示:答案为网友推荐,仅供参考
相似回答