今天写了个能在输入一连串用空格隔开的英语单词中把每个英语单词的最后一个字母的代码,写个博客再理一理思路。
这个代码要用到字符分割函数(strtok)所以要包含string这个头文件。
首先创建一个能容纳250个字符的字符数组,用gets输入字符串(用gets输入字符串碰到空格是不会停止读取)。
在创建一个字符指针变量存放空格(这个是分割符,strtok函数就是根据这个空格符把各个英语单词从字符串中分割出来)。
创建一个字符指针ret来存放分割出来的英语单词的首字母地址。
每次分割出来的英语单词后面用来隔开的空格被改成了\0,所以在每一次分割出来的英语单词的首地址被存放到ret时,对这个地址解引用放到while循环的判定条件,这样它到\0为假时就跳出循环。
每一次循环都让ret++,这样ret就是\0的地址了。
ret是\0的地址,那ret减一就是分割出来的英语单词最后一个字母的地址了,对它解引用后打印出来就得到英语单词最后一个字母了。
代码如下:
#include <stdio.h>
#include <string.h