求教puts()参数的问题
题目:编写一个程序,按照相反的单词顺序显示命令行参数。
如命令行参数是“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’,存储于字符串中,输入缓冲中没有遗留
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 <stdio.h> char *gets(char *str); 这个函数很简单,只有一个参数。参数类型为 char* 型,即 str 可以是一个字符指针变量名,也可以是一个字符数组名。 gets() 函数的功能是从输入缓冲区中读取一个字符串存储到字符指针变量 str 所指向的内存空间。 下面将前


