[英]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.