首页 > 其他 > 详细

统计一行字符的单词数

时间:2021-05-23 09:16:06      阅读:32      评论:0      收藏:0      [点我收藏+]

一. 题目要求

·题目

输入一行字符,统计其中包括多少单词,单词之间用空格分隔。

·要求:

  1. 输入格式:a b c d回车(空格可在任意位置,列如行头行尾可能会有空格。另外数字和字母一样,也可作为单词)
  2. 输出格式:单词数
  3. 输入的字符串长度最长为256个字符

·测试

输入:(空格)a a 112 c(空格)回车
输出:4

二.题目分析

  1. 用一个字符数组存储输入的字符串。
  2. 没有空格的一串字符(数字)即可视为单词。
  3. 先判断空格的个数,分两端有无空格四种情况即可判断单词的个数。

三.代码实现

#include <stdio.h>
#include <string.h>
int main() {
	char str[257];
	int n, m = 0, i;
	gets_s(str, 256);
	n = strlen(str);
	for (i = 0; i <= n - 1; i++) {
		if (str[i] == ‘ ‘) m++;
	}
	if (str[0] == ‘ ‘) {
		if (str[n - 1] == ‘ ‘) printf("%d", m - 1);
		else printf("%d", m);
	}
	else {
		if (str[n - 1] == ‘ ‘) printf("%d", m);
		else printf("%d", m + 1);
	}
	return 0;
}

上面的代码在VS2019上面运行是OK的,但是码图上面却不行。
技术分享图片
正确的输出结果应该分别是5 3 7 5。
据说码图用的编译器是VS2010。
(这下没办法调试发现问题了)

下面是满分的代码:

#include<stdio.h>
int main()
{
	char arr[100];
	int i = 0;
	int num = 0;
	int word = 0;
	gets_s(arr);
	for (i = 0; arr[i] != ‘\0‘; i++)
	{
		if (arr[i] == ‘ ‘)
		{
			word = 0;
		}
		else if (word == 0)
		{
			word = 1;
			num++;
		}
	}
	printf("%d", num);
}

这可能涉及到编译器的版本问题,实在是我的知识盲区。
请各位路过的大神看一下??!我真的想不到问题出在哪儿了??呜呜呜

统计一行字符的单词数

原文:https://www.cnblogs.com/Akizuki-Kanna/p/14799987.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!