m0_74101096 2023-01-17 18:58 采纳率: 100%
浏览 39
已结题

怎样修改代码改变输入方式?

比如输入
{panda,tiger,lion,mouse}
{lion,tiger}
(注:输入时“{}” “,”也在,不能省)
输出
lion tiger
目的是输出有重复的单词,
还有请问我这个代码错误的原因是什么呢,要怎样修改呢?


#include<stdio.h>
#include<string.h>
void maxword(char *s,char *t)
{
int i,j=0,m=0;
char p[20][30]= {0};
for(i=0; s[i]!='\0'; i++)
{
if(s[i]!=' ')
p[m][j++]=s[i];
else
{ p[m][j]='\0';
m++;
j=0;
}}
for(i=0; i<m; i++) {
if(strstr(t,p[i])!=NULL) {
printf("the same word:%s\n",p[i]);
}}}
void main()
{
    scanf("{");
char s[100];
scanf("%s,",s);
scanf("}");
scanf("{");
char t[100];
scanf("%s,",t);
scanf("}");
maxword(s,t);
}

  • 写回答

4条回答 默认 最新

  • ShowMeAI 2023-01-17 19:28
    关注

    代码可以调整的点:

    • 1.scanf("{");和scanf("}");之间应该使用%[{}]来读入括号。
    • 2.scanf("%s,",s);和scanf("%s,",t);之间应该使用%[^}]来读入字符串,因为要读入所有的单词,而不是仅读入一个单词。
    • 3.strstr()是在一个字符串中查找另一个字符串的函数,在这里不能用来比较两个字符串是否相同。可以使用strcmp()函数来比较两个字符串是否相同。
    • 4.main函数中应该把void换成int。

    修改后的代码:

    #include<stdio.h>
    #include<string.h>
    void maxword(char *s,char *t) {
        char p[20][30];
        int i,m=0,j=0;
        for (i=0; s[i]!='\0'; i++) {
            if(s[i]!=' ')
            p[m][j++]=s[i]; else {
                p[m][j]='\0';
                m++;
                j=0;
            }
        }
        for (i=0; i<m; i++) {
            if(strcmp(t,p[i])==0) {
                printf("the same word:%s\n",p[i]);
            }
        }
    }
    int main() {
        char s[100];
        scanf("%[{]",s);
        scanf("%[^}]",s);
        scanf("%[}]",s);
        char t[100];
        scanf("%[{]",t);
        scanf("%[^}]",t);
        scanf("%[}]",t);
        maxword(s,t);
        return 0;
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

问题事件

  • 系统已结题 1月25日
  • 已采纳回答 1月17日
  • 创建了问题 1月17日

悬赏问题

  • ¥15 基于PLC的三轴机械手程序
  • ¥15 多址通信方式的抗噪声性能和系统容量对比
  • ¥15 winform的chart曲线生成时有凸起
  • ¥15 msix packaging tool打包问题
  • ¥15 finalshell节点的搭建代码和那个端口代码教程
  • ¥15 Centos / PETSc / PETGEM
  • ¥15 centos7.9 IPv6端口telnet和端口监控问题
  • ¥20 完全没有学习过GAN,看了CSDN的一篇文章,里面有代码但是完全不知道如何操作
  • ¥15 使用ue5插件narrative时如何切换关卡也保存叙事任务记录
  • ¥20 海浪数据 南海地区海况数据,波浪数据