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 docker环境配置
  • ¥20 绿盟安全扫描--检测到目标站点存在javascript框架库漏洞
  • ¥30 Android STD快速启动
  • ¥15 如何使用simulink建立一个永磁同步直线电机模型?
  • ¥30 天体光谱图的的绘制并得到星表
  • ¥15 PointNet++的onnx模型只能使用一次
  • ¥20 西南科技大学数字信号处理
  • ¥15 有两个非常“自以为是”烦人的问题急期待大家解决!
  • ¥30 STM32 INMP441无法读取数据
  • ¥15 R语言绘制密度图,一个密度曲线内fill不同颜色如何实现