标题:这串代码怎么行不通
只看楼主
新手714
Rank: 1
等 级:新手上路
帖 子:50
专家分:3
注 册:2020-4-25
结帖率:88.89%
 问题点数:0 回复次数:5 
这串代码怎么行不通
#include<stdio.h>
#include<string.h>
int main()
{
    printf("输入一串字符:\n");
    char zf[14],*p;
    int c=0;
    p = zf;
    gets_s(zf);
    for (p = zf; p != '\0'; p++)
        c++;
    printf("字符串的长度是:%d", c);
    return 0;
}
搜索更多相关主题的帖子: int 代码 include c++ printf 
2020-05-13 23:57
forever74
Rank: 12Rank: 12Rank: 12
来 自:CC
等 级:贵宾
威 望:49
帖 子:1636
专家分:3940
注 册:2007-12-27
得分:0 
*p!='\0';

对宇宙最严谨的描述应该就是宇宙其实是不严谨的
2020-05-13 23:59
新手714
Rank: 1
等 级:新手上路
帖 子:50
专家分:3
注 册:2020-4-25
得分:0 
回复 2楼 forever74
大佬大佬
2020-05-14 00:02
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:507
帖 子:8890
专家分:53117
注 册:2011-1-18
得分:0 
gets_s(zf); 是怎么编译通过的?我猜你用的不是C编译器,而是C++编译器。
另外,gets_s 在C++中不是标准函数,只是VC的一个私有扩展。
2020-05-14 08:52
lin5161678
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:45
帖 子:1136
专家分:3729
注 册:2011-12-3
得分:0 
以下是引用rjsp在2020-5-14 08:52:48的发言:

gets_s(zf); 是怎么编译通过的?我猜你用的不是C编译器,而是C++编译器。
另外,gets_s 在C++中不是标准函数,只是VC的一个私有扩展。

gets_s 是C11开始添加到标准库里面的函数
不一定是私有扩展
https://zh.

https://zh.
2020-05-16 14:23
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:507
帖 子:8890
专家分:53117
注 册:2011-1-18
得分:0 
回复 5楼 lin5161678
我说的是“在C++中不是标准函数”
而我之所以谈到C++,是因为他的代码必然用的不是C编译器,而是C++编译器。若是C编译器,那么gets_s少一个参数。

我的意思是:
  若用C编译器,gets_s(zf) 应该改为 gets_s(zf,14);
  若用C++编译器,别用 gets_s 这个在C++标准库中不存在的函数。
我觉得 用C++编译器去学C 不是个好习惯,最终会学成个四不像。
2020-05-16 21:47



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




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

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