标题:统计输入单词个数的程序初始定义字符数组的长度是否影响程序执行?
只看楼主
l17538597005
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2019-12-16
 问题点数:0 回复次数:1 
统计输入单词个数的程序初始定义字符数组的长度是否影响程序执行?
#include<stdio.h>
#include<string.h>
int main()
{
   
char str1[3];
int i,c,word=0,num=0;
printf("请输入句子,程序将判断单词数\n");
gets(str1);
 for(i=0;(c=str1[i])!='\0';i++)
 {
    if(c==' ')word=0;
else if(word==0)
{
word=1;
num++;
}
 }
printf("输入单词数为%d",num);





return 0;
}


这个程序开始定义的 char str1[3] 但输入的句子字符长度大于3依旧可以判断单词数量,是不是说明这个初始定义的字符容量不影响程序呢?比如说我输入"i am a boy"字符长度为10,仍能运行
搜索更多相关主题的帖子: 输入 定义 字符 单词 长度 
2019-12-16 20:51
纯蓝之刃
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:76
帖 子:554
专家分:3690
注 册:2019-7-29
得分:0 
你这个是典型的越界。
gets函数因为这个越界问题已经被废弃了。
你这个样子就像去睡大通铺,你只定了一个铺位,结果你想要占三个位置,如果你旁边的两个铺位没人,那你就占着也没事。如果你旁边的铺位有人,如果那人脾气好,就骂你几句让你占着位置了,他自己的进程报个错,不陪你玩了。如果那人脾气不好打你一顿把铺位掀了,那你们谁都别睡了,电脑直接死机了。

一沙一世界,一花一天堂。无限掌中置,刹那成永恒。
2019-12-16 22:05



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-498439-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.402777 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved