前一个数组附加到当前数组

时间:2013-07-02 06:09:50

标签: c arrays input

前一个数组附加到我想要的数组。 我如何得到阵列的第一部分? (输出的第一部分)。

int main(void) {
FILE *fIn, *csis;
if (fopen_s(&csis,"csis.txt","w") != 0) {
    printf("Failed to open csis.txt for writing.\n");
}
if (fopen_s(&fIn,"congress.txt","r") != 0) {
    printf("Failed to open congress.txt for reading.\n");
}
else {
char processTxt[500] , txtUpperCase[500] ;              

    processFile(fIn, processTxt, txtUpperCase);
    printf(txtUpperCase);
    fprintf(csis,"%s",txtUpperCase);

    cipher(txtUpperCase, 13);

    /*outputCode(txtUpperCase);*/

    fclose(fIn);
    fclose(csis);

}
return 0;
}

void processFile(FILE *fIn, char *processTxt, char *txtUpperCase) {
int i = 0, j = 0;



fgets(processTxt, g_size, fIn);

for (i = 0; i < g_size; i++) {
    if (processTxt[i] == '\0')
        break;

    processTxt[i] = toUpper(processTxt[i]);                                             
}
processTxt[i] = '\0';
for (i = 0; i < g_size; i++) {
    if (processTxt[i] == '\0')
        break;

    if (isUpperCase(processTxt[i])) {               
        txtUpperCase[j] = processTxt[i];
        ++j;
    }
}
char isLowerCase(char input) {
return (input>= 'a' && input <= 'z');
}

char isUpperCase(char input) {
return (input>= 'A' && input <= 'Z');
}

char toUpper(char input) {
char upperCase = input;

if (isLowerCase(input))
    upperCase = (char)((int)input - 32);

return upperCase;
}

输出: CONGRESSSHALLMAKENOLAWRESPECTINGANESTABLISHMENTOFRELIGIONORPROHIBITINGTHEFREEEXERCISETHEREFORABRIDGINGTHEFREEDOMOFSPEECHOROFTHEPRESSORTHERIGHTOFTHEPEOPLEPEACEABLYTOASSEMBLEANDTOPETITIONTHEGOVERNMENTFORAREDRESSOFGRIEVANCESÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌCONGRESS须立法规管任何宗教,或者其禁止自由行的编制;或者压制言论自由或新闻自由;或者人民的权利,以便集会,并为政府提出申诉,以减轻申诉。

}

2 个答案:

答案 0 :(得分:1)

让我们一步一步来。

  1. 如果第二个else成功,您只会执行fopen。代码中无法保证第一个成功
  2. 目前还不清楚问题是什么。假设您询问如何知道第一个数组在附加第二个数组之后的大小,答案是没有办法在没有重新打开文件的情况下执行此操作并determining the size
  3. 这是你去那里的讨厌的对话:)

答案 1 :(得分:1)

您似乎错过txtUpperCase中的终止空字符。您的程序的特定行为未定义; fprintf将打印它在内存中找到的任何内容,直到到达空字符,甚至超出数组的末尾。

表示阵列似乎在平台的内存中彼此相邻,因此它们都被打印出来。