http://ac.jobdu.com/problem.php?pid=1199
1、注意一些細節,逗號的處理;換行的處理;第一次檢測到與之後檢測到相同字符的不同處理
2、
#include <stdio.h>
#include <string.h>
int main()
{
//freopen("D:\\1.txt","r",stdin);
int i,j;
char str[105];
bool mark[105];
memset(str,0,sizeof(str));
while (scanf("%s",str)!=EOF)
{
memset(mark,0,sizeof(mark));
int len=strlen(str);
for (i=0;i<len;i++)
{
int flag=1; //標記第一次檢測到flag=1,之後flag=0
if (mark[i])
{
continue;
}
else
{
for (j=i+1;j<len;j++)
{
if (str[i]==str[j])
{
if (flag)
{
printf("%c:%d,%c:%d",str[i],i,str[j],j);
flag=0;
}
else
printf(",%c:%d",str[j],j);
mark[j]=true;
}
}
if (!flag) //flag=0,說明有相同字符,所以str[i]及其相同字符要輸出一行
{ //所以這個i才換行,否則沒有輸出,就不用換行
printf("\n");
}
}
}
memset(str,0,sizeof(str));
}
return 0;
}