C语言输入一串英文句子,怎么让单词顺序不变,再倒序输出 例如:I love you ,输出为,y

C语言输入一串英文句子,怎么让单词顺序不变,再倒序输出
例如:I love you ,输出为,you love i,

//希望我的回答对你的学习有帮助
#include<stdio.h>
#include<string.h>
typedef struct Stack{
    int top;
    char c[100000];
}Stack;

void init(Stack &s){
   s.top=0;
}

void push(Stack &s,char c){  
    s.c[s.top++]=c;
}

int pop(Stack &s,char *p){   
int i=0;
    while(s.top>0&&(*p++=s.c[--s.top])!=' ') {
        i++;
    }
    return i-1;
}

void rev(Stack &s){   
char c[100];
    while(s.top>0){
        int i=pop(s,c);
        for(;i>=0;i--){
            printf("%c",c[i]);
        }
        printf(" ");
    }
    printf("\n");
}

int main(){
Stack s;
init(s);
char c[1000];
gets(c);
for(int i=0;i<strlen(c);i++)
     push(s,c[i]);
rev(s);
return 0;
}

温馨提示:内容为网友见解,仅供参考
第1个回答  2018-08-09
#include<cstdio>
int n,k = 1;
char a[50][10],c;
int main(){
c = getchar();
while(('a' <= c && c <= 'z') || ('A' <= c && c <= 'Z') || c == ' '){
if(c == ' '){
n = 0;
k++;
c = getchar();
continue;
}
a[k][n++] = c;
c = getchar();
}
for(int i = k;i >= 1;i--)
printf("%s ",a[i]);
return 0;
}

第2个回答  2015-04-16
自己多想才是王道
你可以分别定义三个字符串
然后再把顺序反过来输出就行了追问

新手想不出来啊,如果不止这几个单词呢?

追答

学了数组和指针没有啊?
才开始都这样的
慢慢来啊。

C语言输入一串英文句子,怎么让单词顺序不变,再倒序输出 例如:I...
\/\/希望我的回答对你的学习有帮助#include<stdio.h>#include<string.h>typedef struct Stack{ int top; char c[100000];}Stack;void init(Stack &s){ s.top=0;}void push(Stack &s,char c){ s.c[s.top++]=c;}int pop(Stack &s,char *p){ int i=0; while(s....

...将单词倒着输出,例 输入 I Love You 输出 You Love I
参考代码:include <stdio.h>#include <string.h>void main(){ int i,j,k; char str[300],str1[30]; gets(str); j=strlen(str); k=0; for( i=j-1; i>=0; i--) { if(str[i]!=' ') str1[k++]=str[i]; else {str1[k]='\\0';strrev(str1...

c语言输入一串字符,将所有单词开头改成大写 其他为小写,然后将单词倒...
I love yoU !I Love You !\/

C语言输入一段文字(英文和中文字符均有),要求输出其中的汉字问题。求...
char input[] = "我I爱Love你You";char *p = input;char output[50];int i = 0;while((*p) != '\\0'){ if ((unsigned char)(*p) > 0x7F){ output[i] = *p;i++;} p++;} output[i]='\\0';printf("%s", output);

c语言:输入一行英文字符串,把每个单词第一个字母变为大写,输出修改后的...
int main(int argc,char*argv[]){ char str[100+1];int isfirst=1;char ch;int i=0;while((ch=getchar())!=EOF){ if(isalpha(ch)){ if(isfirst==1){ ch=toupper(ch);isfirst=0;} } else { isfirst=1;} str[i++]=ch;} str<i>='\\0';printf("%s\\n",str);return 0;...

C语言编程,写一个函数,使输入的一个字符串按反序存放,在主函数中输入和...
void reverse(char st[]);\/\/定义反序函数 int main(){ char s[20];input(s);\/\/调用输入函数 printf("Original string: %s\\n", s);\/\/输出原字符串 reverse(s);\/\/调用反序函数 printf("New string: %s\\n", s);\/\/输出反序后的字符串 return 0;} void input(char st[]){ printf(...

c语言怎么将一段英文输入到一个一个二维数组中?就是每一行储存一个单词...
include<stdio.h>#include <string.h> int main( ) { char s[1024] = "I love you, you are my only love!";char *p = strtok(s," ");char ss[100][100]; \/\/代放入的二维数组int k = 0;int i;strcpy(ss[k],p);while((p = strtok(NULL," "))!=NULL){strcpy(ss[k],...

在VC中如何用C语言输入一个汉字,将汉字给一个变量,使这个变量输出的时候...
可以用unsigned char类型的数组储存汉字,输出时按字符串输出即可 include<stdio.h> int main() { unsigned char s[]="百度一下,你就知道"; printf("%s\\n",s); puts(s); scanf("%s",s); printf("%s\\n",s); puts(s); return 0; } ...

C语言 输入带空格的字符串输出不带空格的字符串
include <stdio.h>#include<string.h> int main(){char ch[100];int n,i;gets(ch);for(i=0;i<strlen(ch);i++)if(ch[i]!=' ')printf("%c",ch[i]);printf("\\n");return 0;}\/*运行结果:I Love YouILoveYou*\/

C语言统计单词个数
Q:输入一串字符串,输出其中有多少个单词。 Eg:Good Wishes A:include <stdio.h>#include <string.h>#define SIZE 20int main(){ char str[SIZE]={'\\0'}; int count=0;printf("plz input the string\\n");gets(str);puts(str); int length = strlen(str); for (int i...

相似回答