文字列を逆にするために次の関数を実行しました。
char* reverseString(char *original_string)
{
int length = strlen(original_string);
char *end_of_string = original_string + (length - 1);
char *reversed_string = malloc(sizeof(char) * length);
int count = 0;
int top_limit = length;
while (count < length) {
reversed_string[count] = end_of_string[top_limit];
top_limit--;
count++;
}
return reversed_string;
}
私が計画していた戦略は、元の文字列の末尾にポインターを置き、新しい文字列に逆方向にコピーすることです。ここで何が間違っているのかわかりませんが、実行するとき:
char* prova = "hello";
char* reversed_string;
reversed_string = reverseString(prova);
printf("%d", strlen(reversed_string));
正しい長さが表示されず、コンパイル時に次の警告が表示されます。
test.c:46: warning: format ‘%d’ expects type ‘int’, but argument 2 has type ‘size_t’