我正在做這個編程問題,其中有10個測試用例的約30個字符的反向字符串。反向字符串的代碼沒有清除以前的值
我的代碼是這樣的: -
#include <stdio.h>
#include <string.h>
int main() {
int t;
scanf("%d",&t);
while (t--) {
char str[30];
scanf("%s",&str);
char revStr[30];
int len = strlen(str);
int i = 0;
int j = len-1;
while (i < len) {
revStr[i] = str[j];
i++; j--;
}
printf("%s\n",revStr);
}
return 0;
}
輸出會亂碼了,如果輸入字符串比以前的字符串大。
例如,
如果last-string
有6
字符,如rocket\0
和new-string
,這是fun\0
具有3
字符,輸出的是funket\0
。
數組名稱相當於第一個元素的地址,所以這個'scanf(「%s」,&str);'應該是'scanf(「%s」,str);'。 –