用C语言编写的反转句子 如把:what is your name 换成 name your is what 看看哪里错#include#includevoid ReverseWord(char *x,char *y) { while(*x
来源:学生作业帮助网 编辑:六六作业网 时间:2024/12/19 10:57:26
用C语言编写的反转句子 如把:what is your name 换成 name your is what 看看哪里错#include#includevoid ReverseWord(char *x,char *y) { while(*x
用C语言编写的反转句子 如把:what is your name 换成 name your is what 看看哪里错
#include
#include
void ReverseWord(char *x,char *y)
{
while(*x
用C语言编写的反转句子 如把:what is your name 换成 name your is what 看看哪里错#include#includevoid ReverseWord(char *x,char *y) { while(*x
#include<stdio.h>
void ReverseWord(char *x,char *y)
{
while(x<y) //这里比较的是指针的位置先后,而不是指针指向字符的大小
{
char t=*x;
*x++=*y;
*y--=t;
}
}
// 将句子按单词逆序
char *ReverseSentence(char *s)
{
// 这两个指针用来确定一个单词的首尾边界
char *p=s ; // 指向单词的首字符
char *q=s ; // 指向空格或者 '\0'
while(*q!='\0')
{
if (*q==' ')
{
ReverseWord(p,q-1) ;
q++; // 指向下一个单词首字符
p=q;
}
else
q++;
}
ReverseWord(p,q-1); // 对最后一个单词逆序
ReverseWord(s,q-1); // 对整个句子逆序
return s;
}
void main()
{
char *k;
char b[]="what is your name"; //这里要定义数组,不能用指针指向字符串常量,因为字符串常量的内存空间是不能被修改的
k=ReverseSentence(b);
printf("%s",k); //输出字符串传指针就可以了,*k只是字符串第一个字符
puts("");
}