| 网站首页 | 业界新闻 | 群组 | 交易 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
共有 178 人关注过本帖
标题:串的 输入输出问题
只看楼主 加入收藏
情义控灬浮云
Rank: 1
等 级:新手上路
帖 子:58
专家分:0
注 册:2017-8-3
结帖率:80.95%
  问题点数:0  回复次数:0   
串的 输入输出问题
大佬们   这个程序 是把串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");
}
2018-11-11 23:32







关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.038185 second(s), 8 queries.
Copyright©2004-2019, BCCN.NET, All Rights Reserved