/*1.字符串反转: 输入一个英文句子如this is a dog 将句子反转输出 dog a is this*/ #include<stdio.h> int main() { int sentence[]={This is a dog}; //index 0123456789101112 int i; for(i=0;i<12;i++) { if(sentence[i]= ){ printf("%d",setence[i]); } } }
时间: 2024-01-21 08:02:08 浏览: 122
首先,在你提供的代码中,字符串应该用双引号括起来,否则会报错。其次,你需要将字符串中的每个单词分离出来,然后倒序输出。以下是一个可能的解决方案:
```
#include <stdio.h>
#include <string.h>
int main() {
char sentence[] = "This is a dog";
char *token = strtok(sentence, " ");
char *words[10];
int count = 0;
while (token != NULL) {
words[count++] = token;
token = strtok(NULL, " ");
}
for (int i = count - 1; i >= 0; i--) {
printf("%s ", words[i]);
}
return 0;
}
```
这里我们使用了 `strtok` 函数将句子中的每个单词分离出来,并将它们存储在一个字符串数组 `words` 中。然后,我们从数组的最后一个元素开始遍历,依次输出每个单词并在末尾加上空格。最后输出的结果为 `dog a is This`。
相关问题
/*1.字符串反转: 输入一个英文句子如this is a dog 将句子反转输出 dog a is this */ #include <stdio.h> int main() { char str[]="this is a dog"; int len = strlen(str); int i, j; // 反转字符串 for (i = 0, ; i < j; i++) { for(j=len-1;j<len;j--){ char temp = str[i]; str[i] = str[j]; str[j] = temp; } } // 输出反转后的字符串 printf("%s\n", str); return 0; }
这段代码有一些问题,首先反转字符串的循环中,内层循环的起始值应该为 len-1,不应该为 len。其次,内层循环应该是与外层循环同时进行的,而不是在外层循环中嵌套一个内层循环。修改后的代码如下:
```
#include <stdio.h>
#include <string.h>
int main() {
char str[]="this is a dog";
int len = strlen(str);
int i, j;
// 反转字符串
for (i = 0, j = len-1; i < j; i++, j--) {
char temp = str[i];
str[i] = str[j];
str[j] = temp;
}
// 输出反转后的字符串
printf("%s\n", str);
return 0;
}
```
这样就可以正确地将字符串反转输出了。
C语言字符串反转: 输入一个英文句子如this is a dog 将句子反转输出 dog a is this
好的,这是一个经典的C语言字符串问题。以下是一个简单的实现,可以实现你所需的功能:
```
#include <stdio.h>
#include <string.h>
void reverseWords(char *str)
{
char *word_begin = str;
char *temp = str;
while (*temp) {
temp++;
if (*temp == '\0') {
reverse(word_begin, temp - 1);
}
else if (*temp == ' ') {
reverse(word_begin, temp - 1);
word_begin = temp + 1;
}
}
reverse(str, temp - 1);
}
void reverse(char *begin, char *end)
{
char temp;
while (begin < end) {
temp = *begin;
*begin++ = *end;
*end-- = temp;
}
}
int main()
{
char str[] = "this is a dog";
reverseWords(str);
printf("%s", str);
return 0;
}
```
这个程序通过遍历输入字符串,将每个单词反转,并最终将整个字符串反转。希望能对你有所帮助!
阅读全文