其他分享
首页 > 其他分享> > 2021-04-07

2021-04-07

作者:互联网

以单词为单位实现句子逆序输出(C语言)

思路如下:

  1. 定义一个指针数组保存每个单词首地址
  2. 将空格替换为’\0’进行输出,同时保存空格所在位置
  3. 逆序输出完毕,再将空格替换回来,恢复原字符串
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