C语言 输入一个句子,颠倒单词并输出.不能使用中间变量,就是不能单独创建一个数组存放颠倒后的句子.
来源:学生作业帮 编辑:搜狗做题网作业帮 分类:综合作业 时间:2024/07/07 15:56:48
C语言 输入一个句子,颠倒单词并输出.不能使用中间变量,就是不能单独创建一个数组存放颠倒后的句子.
输入:how are you 输出:you are how
输入:how are you 输出:you are how
![C语言 输入一个句子,颠倒单词并输出.不能使用中间变量,就是不能单独创建一个数组存放颠倒后的句子.](/uploads/image/z/16832510-62-0.jpg?t=C%E8%AF%AD%E8%A8%80+%E8%BE%93%E5%85%A5%E4%B8%80%E4%B8%AA%E5%8F%A5%E5%AD%90%2C%E9%A2%A0%E5%80%92%E5%8D%95%E8%AF%8D%E5%B9%B6%E8%BE%93%E5%87%BA.%E4%B8%8D%E8%83%BD%E4%BD%BF%E7%94%A8%E4%B8%AD%E9%97%B4%E5%8F%98%E9%87%8F%2C%E5%B0%B1%E6%98%AF%E4%B8%8D%E8%83%BD%E5%8D%95%E7%8B%AC%E5%88%9B%E5%BB%BA%E4%B8%80%E4%B8%AA%E6%95%B0%E7%BB%84%E5%AD%98%E6%94%BE%E9%A2%A0%E5%80%92%E5%90%8E%E7%9A%84%E5%8F%A5%E5%AD%90.)
#include
int main()
{
char str[128];
char *p;
gets(str);
p=str;
while( *p++ ) ;
while ( p != str )
{
if ( *p == ' ' )
{
*p=0 ;
printf("%s " ,p );
}
p-- ;
}
printf("%s\n",p ) ;
return 0;
}
再问: 不用C++呢?不懂C++,刚开始学,用C#怎么写?谢谢
再答: 不会C#啊,等别人吧
再问: 不好意思看错了,不是C++。刚刚看别人用C++写的
再答: 呵呵,C++也是我写的,我后来又改成C的了
再问: 这个程序不对啊,运行结果不对。
再答: 哦,不好意思,修改时丢了一点, 这句改一下: printf("%s " , p ); 改成: printf("%s " , p+1 );
再问: while( *p++ ) ;意思是将指针p指向字符数组的 \0 位置吗? *p=0 ;是什么意思?
再答: int main() { char str[128]; char *p; gets(str); p=str; while( *p++ ) ; //先将指针移动字符串尾,也就是你说的指向字符数组的 \0 位置 while ( p != str ) //倒着向前访问数组,直到数组头 { if ( *p == ' ' ) //遇到空格时 { *p=0 ; //置空格位置为新的串尾,这样下次printf输出的时候就不会输出空格后面的数据了。 printf("%s " , p+1 ); //p+1一定不是空格,是要输出的子串 } p-- ; //向前移动一个指针 } printf("%s\n",p ) ; //输出最后一个子串 return 0; }
再问: 明白了,刚开始学习C语言,有很多不懂的。非常感谢指导。
再答: 明白就好
int main()
{
char str[128];
char *p;
gets(str);
p=str;
while( *p++ ) ;
while ( p != str )
{
if ( *p == ' ' )
{
*p=0 ;
printf("%s " ,p );
}
p-- ;
}
printf("%s\n",p ) ;
return 0;
}
再问: 不用C++呢?不懂C++,刚开始学,用C#怎么写?谢谢
再答: 不会C#啊,等别人吧
再问: 不好意思看错了,不是C++。刚刚看别人用C++写的
再答: 呵呵,C++也是我写的,我后来又改成C的了
再问: 这个程序不对啊,运行结果不对。
再答: 哦,不好意思,修改时丢了一点, 这句改一下: printf("%s " , p ); 改成: printf("%s " , p+1 );
再问: while( *p++ ) ;意思是将指针p指向字符数组的 \0 位置吗? *p=0 ;是什么意思?
再答: int main() { char str[128]; char *p; gets(str); p=str; while( *p++ ) ; //先将指针移动字符串尾,也就是你说的指向字符数组的 \0 位置 while ( p != str ) //倒着向前访问数组,直到数组头 { if ( *p == ' ' ) //遇到空格时 { *p=0 ; //置空格位置为新的串尾,这样下次printf输出的时候就不会输出空格后面的数据了。 printf("%s " , p+1 ); //p+1一定不是空格,是要输出的子串 } p-- ; //向前移动一个指针 } printf("%s\n",p ) ; //输出最后一个子串 return 0; }
再问: 明白了,刚开始学习C语言,有很多不懂的。非常感谢指导。
再答: 明白就好
从键盘输入n个整数并放到数组x中,编写一个函数,将数组x中的元素颠倒顺序后仍然存放在愿数组中.
C 语言 一维整形数组将数组元素逆序存放并把交换后的数组输出 要求数组元素的输入,交换和输出分别用函数
求一道题目的解法编写一个程序;输入一个正整数,把它的各位数字前后颠倒一下,并输出颠倒后的结果;例如:如果输入的是1234
请问C语言如何实现输入一个整数,将各位数颠倒,如输入12345,输出54321;输入-4567,输出-7654?
pascal题从键盘上输入一组自然数写到数组A中,并将其内容按颠倒的次序重放,只能使用一个数组A.如输入 2 6 9 8
用C语言编辑,输入一个英文句子,删除句子的前导空格和后导空格,并使单词之间只有一个空格.
编程实现:输入一个英文句子,将句子中每个单词的首字母大写后输出.
输入一个英文句子,将句子中每个单词的首字母大写后输出.
翻译句子--- black short hair,排列次序不能颠倒
c# 颠倒一个句子中的词的顺序
C语言 定义一个二维数组来存放一个矩阵,然后将矩阵转置输出
c语言编写一个程序,在一维数组里输入一句英文,统计该句子里出现的单词个数