反转 C 中的单词,然后存储反转后的单词以在 printf 中使用

Reversing a word in C and then storing that reversed word to use in a printf

所以基本上我正在尝试反转一个词(一个词,而不是一个包含多个词的字符串)并且我已经成功地使用这个

反转了这个词
{
    int end, x;
    end = strlen(myString) - 1;
    for (x = end; x >= 0; --x) {
        printf("%c", myString[x]);
    }
}

(myString 在代码的其他地方定义)

但更重要的是,我需要像这样打印颠倒的词:

printf("The word reversed is '%c'", myString);

而且我不知道如何实际使用 for 循环反转的单词并将其放入第二个 printf 命令。有什么想法吗?

给你。

for ( size_t i = 0, n = strlen( myString ); i < n / 2; i++ )
{
    char c = myString[i];
    myString[i] = myString[n - i - 1];
    myString[n - i - 1] = c;
}

printf("The word reversed is '%s'\n", myString);

如果传递给您的字符串是文字而不是分配的指针,您需要将该字符串反向复制到分配的缓冲区中。如果您试图避免损坏原始字符串,同样适用。

// allocate a buffer big enough to hold a copy of the string
int len = strlen(myString);
char* reverse = malloc(len+1);

// reverse copy it over.
for (size_t i = 0; i < len; i++)
{
    reverse[i] = myString[len-1-i];
}
reverse[len] = '[=10=]'; // null terminate our new string

printf("Reversed word: %s\n", reverse);

// free the string when you are done with it
free(reverse);