题目如下:
描述
计算字符串最后一个单词的长度,单词以空格隔开,字符串长度小于5000。
(注:字符串末尾不以空格为结尾)
输入描述:
输入一行,代表要计算的字符串,非空,长度小于5000。
输出描述:
输出一个整数,表示输入字符串最后一个单词的长度
解题思路:
1、声明一个字符数组word,并初始化;
2、使用scanf 方式输入字符串,并将其放入字符数组中;
特别注意scanf输入时的 "%[^\n]" 操作,[^字符A] : 表明只有在遇到字符A时,输入才会截止
同样scanf 还有"%[a-z]" "%[0-9]" 操作,[字符/字符范围]:表明只有在字符或字符范围内,输入才有效
3、逆序进行 字符比较,当其字符与空格字符' ' 相同时,退出for 循环;
这里又有一个 新手和 老鸟 都会忽视的地方,单引号、双引号、不带引号 分别代表什么意思?
单引号 ‘a’ ‘A’ 用于指代字符a A , 一般用法if(word[i] == 'a') 判断是否为字符a ,
双引号”a" “A” 则用于指代字符串、常量, 一般用法 const char * = "abdcd";
不带引号 a A 则用来指代 变量, 一般用法 a = 100; int i = a;
#include <string.h>
#include <stdio.h>int main () {
char word[5000] = {0};
int length = 0;
scanf("%[^\n]", word);
for (int i = strlen(word)-1; i >= 0; i--) {
if (word[i] == ' ') {
break;
}
length++;
}
printf("%d\n", length);
return 0;
}