c语言求最后一个单词的长度,试题2:计算字符串最后一个单词的长度
试题描述:计算字符串最后一个单词的长度,单词之间以空格隔开
涉及的知识点:
1、scanf读取;
1.1、以%d读取时,只识别“十进制整数”。对 %d 而言,空格、回车、 Tab 键都是区分数据与数据的分隔符。当 scanf 进入缓冲区中取数据的时候,如果 %d 遇到空格、回车、Tab 键,那么它并不取用,而是跳过继续往后取后面的数据,直到取到“十进制整数”为止(最开始)。对于被跳过和取出的数据,系统会将它从缓冲区中释放掉。未被跳过或取出的数据,系统会将它一直放在缓冲区中,直到下一个 scanf 来获取(中间遇到空格等分隔符不会读取后面的数据,等待下次scanf读取)。如果 %d 遇到字母,那么它不会跳过也不会取用,而是直接从缓冲区跳出。注意:读取多个数字时,输入数据中间以空格分开。
#include
int main()
{
int num;
scanf("%d\n", &num);
printf("num = %d", num);
return 0;
//上述代码,当输入为 123 456时,输出为num = 123. 当输入为a时,num没有取到数字,输出乱码
}
1.2、以%c读取时,任何数据都会被当作一个字符,不管是数字还是空格、回车、Tab 键它都会取回。
1.3、以%s读取时,会读取字符串,但是遇到空格、回车键以及Tab键就会认为字符串读取结束,空格后的字符串作为下一个输入项处理
2、gets()读取时
从输入缓冲区中读取一个字符串存储到字符指针变量 str 所指向的内存空间,并且可以读取到空格、回车键等。注意:系统会将最后“敲”的换行符从缓冲区中取出来,然后丢弃,所以缓冲区中不会遗留换行符,读取的字符串中包括换行符。
C语言解法一(此种解法没有考虑到末尾由空格的情况):
#include
int main(void){
int i=0,j=0,count_blank=0;
char *str = (char *)malloc(5000);
gets(str);
while((int)str[i]!='\0')
{
i++;
j++;
if((int)str[i]==' ' || str[i]=='\t')
{
j=0;
count_blank++;
}
}
if(0==count_blank)
j=i+1;
free(str);
printf("%d\n",j-1);
}
C语言解法二(此种解法考虑到末尾有空格的情况):
#include
#include
#include
int main(void){
int i=0,j=0;
char str[5000];
//char *str = (char *)malloc(5000);
gets(str);
int n = strlen(str);
int flag = 1;
for(i=n-1;i>=0;i--)
{
if(flag && str[i]==' ')
{
continue;
}
else if(str[i]!=' ')
{
flag = 0;
++j;
}
else
{
break;
}
}
//free(str);
printf("%d\n",j);
}
Python解法:
import sys
s=sys.stdin.readline()
//sys.stdin.readline( )会将标准输入全部获取,包括末尾的'\n',
//因此用len计算长度时是把换行符'\n'算进去了的,但是input( )获取输入时返回的结果是不包含末尾的换行符'\n'的。
//可以用strip( )函数(sys.stdin.readline( ).strip('\n'))或sys.stdin.readline( )[:-1]这两种方法去掉换行。
list=s.split()
//split() 通过指定分隔符对字符串进行切片,默认为所有的空字符,包括空格、换行(\n)、制表符(\t)等。
print len(list[-1])
c语言求最后一个单词的长度,试题2:计算字符串最后一个单词的长度相关推荐
- c语言计算字符串最后一个单词长度,2020-05-28华为机考题--字符串最后一个单词的长度(C语言实现)...
题目描述 计算字符串最后一个单词的长度,单词以空格隔开. 输入描述: 一行字符串,非空,长度小于5000. 输出描述: 整数N,最后一个单词的长度. 示例1 hello world 输出 5 算法思路 ...
- python计算分段函数输出x+2的值怎么写_c语言求分段函数分段函数求解:输入 x ,计算并输出 y 的值:y=x+100 ( 当 x < 20) y= x ( 当...
题目: c语言求分段函数 分段函数求解:输入 x ,计算并输出 y 的值: y=x+100 ( 当 x < 20) y= x ( 当 2 0 ≤ x ≤ 100) y=x-100 ( 当 x & ...
- python实现:计算字符的个数,接受一个由字母和数字组成的字符串和一个字符,然后输出输入的字符串中含有该字符的个数。不区分大小写。
题目内容: 接受一个由字母和数字组成的字符串和一个字符,然后输出输入的字符串中含有该字符的个数.不区分大小写. 可以使用以下语句实现字符串s的输入: s=str(input()) 输入格式: 输入一个 ...
- 华为机试题1:计算字符串最后一个单词的长度,单词以空格隔开。
输出一个整数,表示输入字符串最后一个单词的长度. #include "stdafx.h" #include<iostream> #include<string&g ...
- PHP | 计算字符串中的单词总数
Given a string and we have to count the total number of words in it. 给定一个字符串,我们必须计算其中的单词总数. str_word ...
- php 变量 长度,php 怎么计算字符串长度
这篇文章主要介绍了利用PHP函数计算中英文字符串长度的方法,实例对比了PHP函数实现方法与正则表达式的实现方法,具有一定的参考借鉴价值,需要的朋友可以参考下 本文实例讲述了利用PHP函数计算中英文字符 ...
- php技术计算字符个数的函数是什么,php计算字符串中的单词数的函数str_word_count()...
实例 计算字符串 "Hello World!" 中的单词数:<?php echo str_word_count("Hello world!"); ?> ...
- leetcode每日一题--前缀树;前缀哈希;深搜;面试题 08.04. 幂集;648. 单词替换面试题 01.09. 字符串轮转;剑指 Offer II 062. 实现前缀树
leetcode每日一题 ps:今天的每日一题没意思,简单的模拟,自己换一道 面试题 08.04. 幂集 幂集.编写一种方法,返回某集合的所有子集.集合中不包含重复的元素. 说明:解集不能包含重复的子 ...
- Python的Couter使用,计算字符串中每个单词出现的次数
文章目录 一.统计字符串每个元素出现的次数 一.统计字符串每个元素出现的次数 示例:计算字符串中"i love python,python is beautiful"出现2次的第1 ...
最新文章
- springboot . 配置jpa使用
- Android应用Push至设备system目录
- C# VS生成后事件命令行
- 开发iOS即时通讯工具参考的一些开源、框架和教程
- 判断是否是数字类型php_PHP函数补完:判断变量是否为数字is_numeric()
- 开发10年,全记在这本Java进阶宝典里了!
- java版 高斯过程_高斯过程scikit-learn - 异常
- 移动端H5解惑-页面适配
- 标注工具 labelImg 的下载安装及使用
- duilib入门教程
- 嵌入式软件高频面试题
- JFugue4.0 中文说明
- 中小学计算机培训心得体会,中小学计算机管理员培训心得体会材料
- 德乐生 java_【Senior Java Developer怎么样】德乐生软件2021年Senior Java Developer前景怎么样-看准网...
- 水星路由器DNS服务器未响应,新买的水星(MERCURY)路由器怎么设置?
- pthon缺陷检测(机器视觉)
- Windows 纤程/协程
- LateX安装教程(对小白新手超级友好,还瞅啥,说的就是你)
- 计算机bootmgr丢失,如何修复BOOTMGR缺少错误
- Ubuntu20.04 使用Python实现全过程离线语音识别(包含语音唤醒,语音转文字,指令识别,文字转语音)
热门文章
- c/c++处理命令行参数int argc, char **argv的方法
- Java判断字符串是否为纯数字(0-9)
- matlab中仿真丢包,使用MATLAB进行误比特率(BER)仿真----转载
- 傲游浏览器linux傲游源,Ubuntu下安装遨游浏览器
- SpecFlow的力量
- Abp框架默认表中如何添加字段
- Java EE 规范重命名为 Jakarta EE
- python爬虫库教程_Python爬虫Selenium库详细教程
- python批量读取图片并复制入word_提取出 Word 文档里的图片 并利用 python 批量转换格式...
- json 来实现 php 与 javascript,用 Json 来实现 PHP 与 JavaScript 间数据交换