Объединить все входные строки [C программирования] - PullRequest
0 голосов
/ 07 декабря 2018

Я новичок в программировании на c и хотел бы написать программу, которая имеет следующее требование:

Input: количество входов 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;
}

1 Ответ

0 голосов
/ 07 декабря 2018

Вам нужно инициализировать iarray1

Попробуйте

char iarray1[100] = {0};

Причина в том, что неинициализированный iarray1 может содержать любое значение.Поэтому, когда вы делаете первый strcat, может случиться, что строка, которую вы хотите объединить, будет добавлена ​​к некоторому значению gargabe.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...