反转 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);
所以基本上我正在尝试反转一个词(一个词,而不是一个包含多个词的字符串)并且我已经成功地使用这个
反转了这个词{
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);