私は比較的新しいです。私はcoderbyte challengesを解決することによって少し言いたかったのです。単純な文字列逆アルゴリズムの予期せぬ結果
しかし、私は最初に立ち往生しています。それは単純なストリング逆アルゴリズムであると考えられている。
"asdf"や "1234567"のようなものを入力すると、出力は正しいです( "fdsa"、 "7654321")。しかし、 "12345678"または "thisiscool"と入力すると、結果として "87654321 @"/"loocsisiht @"が表示されます。私はどこから来ているのかわかりません。
これは私のコードです:私は、エラーを見つけることができる場所
#include <stdio.h>
#include <string.h>
void FirstReverse(char str[]) {
int len = strlen(str);
char nstr[len];
int i;
for(i = 0; i < len; i++) {
nstr[i] = *(str+len-1-i);
}
printf("%s\n", nstr);
}
int main(void) {
char str[100];
FirstReverse(gets(str));
return 0;
}
誰かが私に教えていただけますか? ありがとうございます。
'strlen'は、* nul終了なしの長さを返します。したがって、' nstr'は小さすぎます。また、ヌル終了を割り当てることもありません。 – user694733