#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main()
{
int i = 0;
char ch;
char *str = (char *)malloc(sizeof(char)*1024);
char *ptr = str;
printf("please input:\n");
while((ch = getchar()) != '\n')
{
*(str + i) = ch;
i++;
}
while(*str != '\0')
{
if(*str == ' ')
{
*str = '\0';
}
str++;
}
while(str != ptr)
{
str--;
if(*str == '\0')
{
printf("%s ", str + 1);
}
}
printf("%s\n", str);
return 0;
}
1,通过指针来实现,用getchar()读入字符
getchar 的用途是从从标准输入流读取一个字符,读回车符时退出
getchar();永远只向缓存中输入一个字符。
2,将句子中空格换成换成‘\0’,
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
void str_reverse(int argc, char *argv[])
{
argc = argc-1;
while(argc != 0)
{
printf("%s ", argv[argc--]);
}
printf("\n");
}
int main(int argc, char *argv[])
{
printf("%d\n", argc);
str_reverse(argc, argv);
return 0;
}
采用命令行参数输入 字符串,因为./a.out 也算一个参数,所以在循环体中,需要执行argc = argc -1;