当前位置:首页 » 编程语言 » c语言颠倒英文句子
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

c语言颠倒英文句子

发布时间: 2022-04-22 00:46:06

① 用c语言编写的反转句子 如把: what is your name 换成 name your is what 求大神帮忙,看看哪里错

自己写的一个,用C标准库字符串函数实现的,指针用不好很容易出错。

主要思路:将整个句子以空格“ ”分割成多个字符串,保存在临时数组str_tmp[MAXLEN][20]中;将临时数组反序写入到str_reverse[MAXLEN]中,输出就可以了。

源程序:

#include <stdio.h>

#include <string.h>

#define MAXLEN 80

void main()

{

//char str[MAXLEN] = "what is your name";

char str[MAXLEN] = {0};

char str_tmp[MAXLEN][20] = {0};

char str_reverse[MAXLEN] = {0};

char *p,*delim = " ";

int i = 0,n;

printf("please input :"); //长度不要超过MAXLEN=80,可以修改宏;

scanf("%[^ ]",str); //允许输入空格,遇回车才结束输入;

p = strtok(str,delim);

while(p != NULL)

{

strcpy(str_tmp[i],p); //分割的字符串保存到临时数组;

p = strtok(NULL,delim);

i++;

}

for(n = i-1;n >= 0;n--)

{

strcat(str_reverse,str_tmp[n]); //将临时数组从后往前的字符串追加到反序数组中;

strcat(str_reverse," ");

}

printf("%s ",str_reverse);

}

运行结果截图:

② C语言每个句子的每一个单词 倒置

给出一个句子,把每一个字母倒置,但不改变单词的顺序。
输入:
这个题有多个CASE。第一行给出一个正整数N(N<500),然后紧接着一个空行,再紧接着N个数据块,。每一个数据块,包括一个正整数T与T行英语句子。句子总长不超过300。每两个数据块之间有一个空行。每个句子只包含大写字母与小写字母。
输出:
对于每个数据块 一行一句输出。每两个数据块之间用一个空行分隔。
输入样例:
1

3
I am happy today
To be or not to be
I want to win the practice contest

输出样例:
I ma yppah yadot
oT eb ro ton ot eb
I tnaw ot niw eht ecitcarp tsetnoc

③ 英文句子倒叙:(C语言实现)请按要求实现!

#include <stdio.h>
int nw(char *s)
{
int n=0,flag=0;
while (*s!='\0')
{
if(*s==' ')
flag=0;
else if(flag==0)
{
n++;
flag=1;
}
s++;
}
return n;
}
void iw(char *s)
{
char a[10][20];
int i,j,b;
b=nw(s);
for(i=0;i<b;i++)
{
j=0;
while(*s!='\0')
{
if(*s!=' ')
{
a[i][j]=*s;
j++;
s++;
}
else
{
s++;
a[i][j]='\0';
break;
}
}
}
a[i-1][j]='\0';
for(i=b-1;i>=0;i--)
printf("%s ",a[i]);
printf("\n");
}
void main()
{
char a[100];
printf("请输入一句话:\n");
gets(a);
iw(a);
}

④ c语言编写程序颠倒句子

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<ctype.h>

#defineOK1
#defineM5


//建单词节点
structNode{
char*data;
Node*next;
};
charf;
//插入函数
voidInsert(Node*&S,chare[])
{

Node*p;
p=(Node*)malloc(sizeof(Node));
p->data=(char*)malloc(strlen(e)+1);
p->next=NULL;
strcpy(p->data,e);
p->next=S;
S=p;
}

voidCreat(Node*&S)
{
inti=0,k=0,j,flag=1,insert;
chars[20];
chara[2000]={0};


printf(" 输入正文:");
fflush(stdin);
gets(a);
printf(" 原文为:");
while(a[i]!=NULL)
{
insert=0;
memset(s,0,20);
j=0;

//跳过单词前面的前导字符
while(flag&&!isalpha(a[i])||a[i]==39)//39为'的ASCII码
{
i++;
if(a[i]==NULL)
flag=0;
}

//当前单词尚未结束,则一直循环
while(flag&&isalpha(a[i])||a[i]==39)
{
insert=1;
s[j]=tolower(a[i]);
i++;
j++;
}
//单词插入
if(insert)
{
s[i]='';
k++;
printf("%s ",s);
if(k%5==0)
printf(" ");
Insert(S,s);
j++;
}
}
if(!isalpha(a[i-1]))
f=a[i-1];
else
f='';
}
//输出正文
voidPrint(Node*&T)
{
if(NULL!=T)
{
printf("%s",T->data);
Print(T->next);
}
else
return;
}

intmain()
{
Node*S=NULL;

Creat(S);
printf(" 倒置为:");
Print(S);
printf("%c",f);
printf(" ");
return0;
}


2013 5 25 8:16

耗时14min

1L

⑤ C语言 输入一个句子,颠倒单词并输出。不能使用中间变量,就是不能单独创建一个数组存放颠倒后的句子。

#include<stdio.h>
main()
{
char a[3][20];
int i=0;
scanf("%s %s %s",a[i],a[i+1],a[i+2]);
for(i=3-1;i>=0;i--)
printf("%s ",a[i]);
printf("\n");
getch();
}
这是用二维数组做的,当输入how are you 时,第一循环,i=2时,从you开始输出,然后执行i--,
为i=1;,,,,,,输出 are ,,,,i--,直到i>=0时终止循环。

⑥ C语言中输入一个英语句子将它翻转后输出

完成!输入句子,回车换行。之后Ctrl+Z结束输入,支持句子和段落反转输出。size是最大字符数,我设的为30,你可以自己修改,也可以用realloc设成动态数组。有什么不懂得地方可以接着问我。

#include <stdio.h>

#include <malloc.h>

#include<string.h>

#define size 30

int main()

{

char *a;

int b;

a=(char*)malloc(size*sizeof(char));

scanf("%[^/n]",a);

b=strlen(a);

for(;b>0;b--)

printf("%c",a[b-1]);

printf(" ");

return 0;

}

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

//希望我的回答对你的学习有帮助
#include<stdio.h>
#include<string.h>
typedefstructStack{
inttop;
charc[100000];
}Stack;

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

voidpush(Stack&s,charc){
s.c[s.top++]=c;
}

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

voidrev(Stack&s){
charc[100];
while(s.top>0){
inti=pop(s,c);
for(;i>=0;i--){
printf("%c",c[i]);
}
printf("");
}
printf(" ");
}

intmain(){
Stacks;
init(s);
charc[1000];
gets(c);
for(inti=0;i<strlen(c);i++)
push(s,c[i]);
rev(s);
return0;
}

⑧ C语言把单词顺序倒置 比如see you later 编程later you see 我这个怎么不行

你的思路不对啊,这样的话太繁琐的过程了,你先把字符串全部逆序,然后遇到空格再把一个单词逆序,虽然可以达到目的,但是明显,重复劳动了呀。

建议思路:
一个字符串,直接根据空格、逗号、句号直接对字符串进行切割。切割成单个单个的单词,比如单词A,B,C。如果从字符串的尾部开始切割,那么直接将这些单词保存到一个字符串里就行了。
函数建议:strrchr()函数