串的 输入输出问题
大佬们 这个程序 是把串T中每个字符在串S中第一次出现的位置。 我先把T里面重复的给“删”了,然后对比,但是输出结果删的位置和我想的不一样 ,我写的明明是删除重复的后者,程序跑出来删的是前者,还有for(;;i++)下面紧跟if语句 i值就加了吗 第j个 不应该是j+1么,但是这样程序跑出来却多算了一个,求指点#include<stdio.h>
#include<stdlib.h>
typedef struct{
char ch[50];
int len;
}String;
int main()
{
int i,j,k;
String s,t;
printf("please input the character in S you want to :\n");
scanf("%d",&s.len);
printf("their are:\n");
for(i=0;i<s.len;i++)
scanf("%c",&s.ch[i]);
fflush(stdin);
printf("please input the character in T you want to :\n");
scanf("%d",&t.len);
fflush(stdin);
printf("their are:\n");
for(i=0;i<t.len;i++)
scanf("%c",&t.ch[i]);
for(i=0;i<t.len-1;i++)
{
for(j=0;j<t.len&&j!=i;j++)
{
if(t.ch[i]==t.ch[j])
{
for(k=j;k<t.len-1;k++)
{
t.ch[k]=t.ch[k+1];
}
t.len=t.len-1;
}
}
}
for(i=0;i<t.len;i++)
{
k=0;
for(j=0;j<s.len;j++)
{
if(t.ch[i]==s.ch[j])
{
printf("%c 在串T中首次出现的位置为: %d;\n",t.ch[i],j);
k++;
break;
}
}
if(k==0)
printf("error! there is no %c in T!\n",t.ch[i]);
}
system("pause");
}