「题解」字符串中的所有单词进行倒排

时间:2025-03-27 09:40:25

????可以多次输入字符串进行调试

while(gets(str)>0)

创建指针数组(注意是指针数组而不是数组指针),去存放每个单词的首地址。有些伙伴会问为什么要用指针数组呢?为啥不直接创建指针去存放地址呢?首先,我不知道创建多少个指针才合适,其次,创建这么多指针,怎么去给他们赋值,怎么去命名。这些都是一些不可忽视问题,但是指针数组可以有效去解决这些问题。

char* word[10000]={NULL};

????如果是字母字符,则是单词的起始字符

if(('z'>=*ptr&&*ptr>='a')||('Z'>=*ptr&&*ptr>='A'))

????保存每个单词的起始地址

word[row++]=ptr;

????把本次的单词字母字符走完,直到遇到非字符字母

while(*ptr!='\0'&&(('z'>=*ptr&&*ptr>='a')||('Z'>=*ptr&&*ptr>='A')))

????不能继续向下,因为下边的ptr++会跳过当前非字母字符

continue;

????把非字母字符替换为字符串的结尾标志

*ptr='\0';

????针对所有单词的起始地址逆序输出

printf("%s",word[i]);