1.用C语言编写的反转句子 如把: what is your name 换成 name your is
#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("");
}
2.有一句话喝酒多了反转令一个人的句子
戒酒者必读七要点
○酗酒时,我感觉谁都对不起我,全世界的人都对不起我;戒酒后,我感觉对不起很多人。
○最好的戒酒药,就是酗酒者对父母、妻儿发自内心的忏悔和泪水。
○酒依赖者也是弱势群体,社会应给予他们更多的关心和宽容,但不要将家人的宽容看做是懦弱。
○多一份理解,少一份责怪。
○想喝酒的人总是能找一千个理由喝酒,但想戒酒,更能找到一万个理由。
○要戒酒,就是要恨酒,就是要培养对酒的憎恨之情。
○戒酒靠药物没有用,只能靠自己,自己的恒心和毅力。
3.c++程序写一条反转句子不反转单词的方法
#include <iostream>
#include <string>
using namespace std;
void InverseString(char* p, char* q){
while(q-p >= 1){
*p = *p^*q;
*q = *p^*q;
*p = *p^*q;
p++;
q--;
}
}
int main()
{
char str[] = "I come from tianjian.";
int iStrLen = strlen(str);
InverseString(str,str+strlen(str)-1);
char *p = str;
char *q = str;
while (*p != '\0')
{
if (*p == ' '){
InverseString(q,p-1);
q = p+1;
}
p++;
}
printf(str);printf("\n");
return 0;
}