2021-04-07
作者:互联网
以单词为单位实现句子逆序输出(C语言)
思路如下:
- 定义一个指针数组保存每个单词首地址
- 将空格替换为’\0’进行输出,同时保存空格所在位置
- 逆序输出完毕,再将空格替换回来,恢复原字符串
void reversebyword(char *str)
{
char *pstr[10];//保存单词首地址
char space[10];//恢复原字符串
int i=0;
int j=0;
int len;
char *start=str;
while(*(str+j)!='\0')
{
if(*(str+j)==' ')
{
pstr[i]=start;//保存单词首地址到数组
start=str+j+1;
*(str+j)='\0';//空格替换为'\0'
space[i]=j;//保存空格位置
i++;
}
if(*(str+j)=='\0')
{
pstr[i]=start;
}
j++;
}
len=i;
for(i=len;i>=0;i--)//输出逆序结果
{
printf("%s ",pstr[i]);
}
for(i=0;i<len;i++)//恢复原字符串
{
*(str+space[i])=' ';
}
}
标签:char,07,04,pstr,空格,start,2021,str,单词 来源: https://blog.csdn.net/qq_41522335/article/details/115483212