簡體   English   中英

我正在嘗試將一個字符串數組復制到另一個字符串數組上,但反過來

[英]I'm trying to copy a string array onto another string array but in reverse

我想將一個字符串數組復制到另一個字符串數組上,但另一個字符串數組將相反。 (例如:停止變成盆)。

這是我寫的代碼:

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

int main(){

char notreversed[] = {};
int i, k, length;


scanf("%s", notreversed);
length = strlen(notreversed);

char reversed[length];

for(i=0; i<length ; i++ ){
    reversed[i] = notreversed[length-i];
  
}
printf("%s", reversed);

}

我的計划是使用 for 循環將數組中的字符串一個一個放入,但它總是給我一個“退出狀態 116”錯誤。 我可以知道原因嗎?

  • 您必須為notreversed分配足夠的空間來存儲讀取的字符串。
  • length-i應該是length-1-i
  • 在通過%s打印之前,必須將終止空字符添加到reversed
#include <stdio.h>
#include <string.h>

int main(void){

    char notreversed[102401] = {}; /* allocating 100KiB, hoping this is enough... */
    int i, k, length;


    scanf("%102400s", notreversed); /* add size limit to avoid buffer overrun */
    length = strlen(notreversed);

    char reversed[length+1]; /* +1 for terminating null-character */

    for(i=0; i<length ; i++ ){
        reversed[i] = notreversed[length-1-i]; /* fix index */
      
    }
    reversed[length] = '\0'; /* add terminating null-character */
    printf("%s", reversed);

}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM