0

前の配列が、必要な配列に追加されています。配列の最初の部分だけを取得するにはどうすればよいですか? (出力の最初の部分)。

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;
}

output: CONGRESSSHALLMAKENOLAWRESPECTINGANESTABLISHMENTOFRELIGIONORPROHIBITINGTHEFREEEXERCISETHERE FORABRIDGINGTHEFREEDOMOFSPEECHOROFTHEPRESSORTHERIGHTOFTHEPEOPLEPEACEABLYTOASSEMBLEANDTOPETITIONTHEGOVERNMENTFORAREDRESSOFGRIEVANCESÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌCONGRESS SHALL MAKE NO LAW RESPECTING AN ESTABLISHMENT OF RELIGION, OR PROHIBITING THE FREE EXERCISE THEREOF; または、言論または報道の自由を奪うこと。または人々が平和的に集まり、苦情の救済を政府に請願する権利。

}

4

2 に答える 2

1

で終端のヌル文字が欠落しているようですtxtUpperCase。プログラムの特定の動作は定義されていません。fprintf配列の末尾を超えても、ヌル文字に到達するまで、メモリ内で見つかったものをすべて出力します。配列は、プラットフォームのメモリ内で隣り合っているように見えるため、両方とも出力されます。

于 2013-07-02T06:32:56.830 に答える