鱼C论坛

 找回密码
 立即注册
查看: 1143|回复: 2

[已解决]同样代码在vs2010和dve中出现不同结果。

[复制链接]
发表于 2019-11-27 23:24:10 | 显示全部楼层 |阅读模式
9鱼币
#include <stdio.h>
#include <string.h>
#define max 10

int main()
{
        int i,m;
        unsigned int ch;
        char array[max];

        printf("请随意输入一串数组:\n");
        for(i = 0;(array[i] = getchar()) != '\n';i++);
               
         ch = strlen(array);\\同样的函数放在dve中可正常计算结果;但在vs2010中会进行求和而非求长度

        printf("%u\n",ch);
        for(i = 1;m = (i*i);i++)
        {
                if(ch > m)
                {printf("s\n");continue;}
                break;
        }
        i--;
        printf("%d",i);
}
最佳答案
2019-11-27 23:24:11
一段搞笑的代码

#define max 10 // 明明声明了10个元素

123456789 // 输入了 9 个元素

for(i = 0;(array = getchar()) != '\n';i++); // 接收了 123456789\n  10个元素

char array[max]; // 刚刚好存完 123456789\n

然后 strlen(array); 来测式字符串的长度(strlen所作的是一个计数器的工作,它从内存的某个位置(可以是字符串开头,中间某个位置,甚至是某个不确定的内存区域)开始扫描,直到碰到第一个字符串结束符'\0'为止,然后返回计数器值(长度不包含'\0')。)

5.png
6.png

最佳答案

查看完整内容

一段搞笑的代码 #define max 10 // 明明声明了10个元素 123456789 // 输入了 9 个元素 for(i = 0;(array = getchar()) != '\n';i++); // 接收了 123456789\n 10个元素 char array[max]; // 刚刚好存完 123456789\n 然后 strlen(array); 来测式字符串的长度(strlen所作的是一个计数器的工作,它从内存的某个位置(可以是字符串开头,中间某个位置,甚至是某个不确定的内存区域)开始扫描,直到碰到第一个字符串结束 ...
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2019-11-27 23:24:11 | 显示全部楼层    本楼为最佳答案   
一段搞笑的代码

#define max 10 // 明明声明了10个元素

123456789 // 输入了 9 个元素

for(i = 0;(array = getchar()) != '\n';i++); // 接收了 123456789\n  10个元素

char array[max]; // 刚刚好存完 123456789\n

然后 strlen(array); 来测式字符串的长度(strlen所作的是一个计数器的工作,它从内存的某个位置(可以是字符串开头,中间某个位置,甚至是某个不确定的内存区域)开始扫描,直到碰到第一个字符串结束符'\0'为止,然后返回计数器值(长度不包含'\0')。)

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2019-11-28 13:13:14 | 显示全部楼层
ba21 发表于 2019-11-27 23:44
一段搞笑的代码

#define max 10 // 明明声明了10个元素

重要的是要添加'\0’,懂了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-5-11 17:48

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表