算法学习
第一篇 字符串最后一个单词的长度
代码如下(示例):
#include <stdio.h> //printf, fgets, stdin
#include <string.h> //strrchr, strchr, strlen
int main(void)
{
char str[2000] = {0};
int length = 0;
char *q = NULL;
/* 使用fgets从标准输入(stdin)获取一行 */
fgets(str, sizeof(str), stdin);//stdin:从键盘输入,最大不超过sizeof(str)字符,放到str中
/* 使用strrchr找到从最右边数的第一个空格的位置,例如hello world,如果有,则返回该字符(空格)以及其后面的字符给P,则P= world,如果没空格,则返回NULL */
q = strrchr(str, ' ');//strrchr就是最右边函数
if (q!=0)
q = q + 1; //指向首字母,变成p=world
else
q = str; //只有一个单词
/* 使用strchr查找是否存在换行符 */
if (strchr(q, '\n'))//查找P中是否有换行,如果有
length = strlen(q) - 1;
else
length = strlen(q);
printf("%d\n", length);
}