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;
}