【问题标题】:Concatenate all input strings [ C programming ]连接所有输入字符串 [C 编程]
【发布时间】:2019-05-09 05:30:42
【问题描述】:

我是 c 编程新手,想编写一个具有以下要求的程序:

输入:输入n个数,然后输入n个字符,比如3个欢迎来到hku

输出连接的字符,例如welcomehku

然而,我发现一个问题,当我将如下代码提交到c自动检查平台时,输出是~~~~welcometohku而不是welcometohku。

有人愿意就这个问题提供帮助吗?非常感谢大家。

#include<stdio.h>
#include<string.h>

int main(){

    int num;  /* array with 50 elements */
    int i = 0;
    char iarray1[100];
    /* read array */
    scanf("%d", &num);

    char iarray[num][100];

    for (i = 0; i < num; i++) {

        scanf("%s", iarray[i]);
    }   

    /* print array elements in reverse order */
    for (i = 0; i < num; i++) {

        strcat(iarray1,iarray[i]);
    }

    //display the concatenated string
    printf("%s",iarray1);
    return 0;
}

【问题讨论】:

标签: c string input concatenation


【解决方案1】:

你需要初始化iarray1

试试

char iarray1[100] = {0};

原因是未初始化的iarray1 可能包含任何值。因此,当您执行第一个 strcat 时,可能会发生您要连接的字符串附加到某个 gargabe 值。

【讨论】:

  • 请问为什么需要初始化?我认为使用 c++ 时声明数组的大小就足够了?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-06-25
  • 1970-01-01
  • 2018-03-19
  • 1970-01-01
  • 1970-01-01
  • 2013-08-20
相关资源
最近更新 更多