求教puts()参数的问题

大极张三疯 大极张三疯 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
题目:编写一个程序,按照相反的单词顺序显示命令行参数。
如命令行参数是“see you later”,程序的显示为“later you see”.

#include<stdio.h>
#include<string.h>
#include<ctype.h>
#include<conio.h>
#define MAX 100
void reverse(char*);
int main(void){
char str[MAX];
puts("please enter a string,i will reverse it.");
while(gets(str)!=NULL){
reverse(str);
puts("try again!");
}
puts("bey");
getch();
return 0;
}
void reverse(char*str){
char *p;
char temp;
int i,n,wl;
p=str;
for(i=0,n=strlen(str);i<n/2;i++){/*倒置字符串*/
temp=*(p+i);
*(p+i)=*(p+n-1-i);
*(p+n-1-i)=temp;
}
puts(str);

p=str;//看答案的,前面已有这句了,为什么这里还要来这个?
wl=0;
do{ /*倒置字符串中单词的字符*/
if(isalpha(*p))
wl++;
else{
if(wl>1){
for(i=0;i<wl/2;i++){
temp=*(p-wl+i);
*(p-wl+i)=*(p-i-1);
*(p-i-1)=temp;
}
wl=0;
}
}
}while(*p++!='\0');
puts(str);//我把这句换成puts(p)为什么不行呢?
}
...全文

相关推荐

在输入输出字符串时scanf(),printf()和gets(),puts()的区别浅谈

1.scanf(“%s”,str)和gets(str) scanf(“%s”,str)和gets(str)均可用于输入字符串到字符数组变量str,但scanf(“%s”,str)只读到输入字符的空格或回车处,而gets(str)读到回车处结束,所以当句子中单词由空格分开时要用后者来输入,如下图所示: 需要强调一点,scanf(“%s”,str)在遇到’\n’(回车)或’ ‘(空格)时输入结束,但’\n’(回车)或’ ‘(空格)停留在出入缓冲区,如处理不慎会影响下面的输入;gets(str)遇到’\n’(回车)时输入结束,但’\n’(回车)已被替换为’\0’,存储于字符串中,输入缓冲中没有遗留

weixin_38697940

cputs函数与puts函数比较

cputs函数与puts函数比较cputs函数与puts函数比较cputs函数与puts函数比较

刚泡

学习puts函数和printf函数的区别.pdf

学习puts函数和printf函数的区别.pdf

筱筱笎琞

puts学案函数和printf函数的区别.pdf

puts学案函数和printf函数的区别.pdf

筱筱笎琞

gets() 函数和puts()函数

gets() 函数和puts()函数。 gets() 函数 在前面从键盘输入字符串是使用 scanf 和 %s。其实还有更简单的方法,即使用 gets() 函数。该函数的原型为: include &lt;stdio.h&gt; char *gets(char *str); 这个函数很简单,只有一个参数。参数类型为 char* 型,即 str 可以是一个字符指针变量名,也可以是一个字符数组名。 gets() 函数的功能是从输入缓冲区中读取一个字符串存储到字符指针变量 str 所指向的内存空间。 下面将前

「已注销」
评论 5
收藏 已收藏
分享
返回顶部
大极张三疯
C语言 70,039 成员 243,237 内容