计算字符串最后一个单词长度

来源:互联网 发布:修改网页的软件 编辑:程序博客网 时间:2024/04/30 04:07

题目:计算字符串最后一个单词的长度,单词以空格隔开
输入样例:
hello world
输出样例:
5
题目分析:
①由于题目中输入的字符串有空格,所以我们这里不能用scanf输入,我们采用gets(s)
②我们要检测最后一个单词的长度,也就是可以说明我们可以从后面往前面循环找出第一个空格位置,之后直接求差值我们就可以知道这个字符串最后一个单词的长度
③由于我们需要循环,所以我们考虑把输入的字符串放入一个字符串数组中
④这里还需要注意一种特殊情况,如果字符串中没有空格的情况。
学习笔记:
①如果输入的字符串中含有空格,我们需要用gets(s)
例如char s[maxn];gets(s);
②如果输入的字符串中含有空格,但是我们可以选择单个单个输入处理时,我们需要用
while((c = getchar()) != EOF)
③测量字符串的长度用strlen,这里十分注意定义int len必须要放在scanf之前定义了。
④这里补充c/c++中各种输入模式的用法:
cin
1)输入一个数字
2)接受一个字符串,遇到空格、TAB、回车都结束
cin.get()
1)cin.get(ch)用来接收字符
2)cin.get(s,n)用来接收一行字符串,可以接收空格 这个类似于getline 可以输入多个单词用空格隔开
cin.getline()
接受一个字符串,可以接收空格。这个和cin(s,n)都需要注意
char m[] = jklkjilj;
cin.getline(m,5);
cout << m << endl; 这里输出结果为jklk 因为最后一个字符为‘0’
这就可以知道直接上cin.getline()有三个参数,接收字符串到m,接收个数,结束符(当省去的时候我们就默认为'\0'或者‘/n’)
gets()
接收一个字符串,可以接收空格并输出,但是需要加上头文件#include<string>
而且需要注意不能写成m = gets();应该为gets(m)
getchar()
接收一个字符,需要有头文件#include<string>
这几需要注意,不能写成getchar(ch);应该写成ch = getchar();

=========================================================================

参考代码:

#include <stdio.h>#define maxn 1000#include <string.h>int main(){    int number = 0,i,len;    char s[maxn];    gets(s);    len = strlen(s);    for(i = len-1; i >= 0; i--)    {        if(s[i] == ' ')        {            number = len - 1 - i;            printf("%d\n",number);            return 0;        }    }    printf("%d\n",len);    return 0;}




1 0
原创粉丝点击