| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 521 人关注过本帖
标题:字符串函数
只看楼主 加入收藏
a250621226
Rank: 2
等 级:论坛游民
帖 子:17
专家分:13
注 册:2007-3-3
结帖率:66.67%
收藏
已结贴  问题点数:20 回复次数:6 
字符串函数
我用的是vs2010
这个程序是用来测试strlen和sizeof这两个的

在scanf不加_s的时候输出正常,如果加上_s就输出是0了,求解

#include <stdio.h>
#include <stdlib.h>
#include <string>
int main ()
{

    char a[40];

    printf ("开始:");

    scanf ("%s",&a);

    printf ("开始测试:\nstrlen:%d\nsizeof:%d\n",strlen(a),sizeof(a));
   
    printf ("OK\n");

    system ("pause");

}
搜索更多相关主题的帖子: include system 字符串 
2013-04-27 11:43
韶志
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:斗气大陆
等 级:贵宾
威 望:44
帖 子:2223
专家分:13592
注 册:2013-3-22
收藏
得分:0 
#include <string>    后面少了 .h
scanf("%s",&a)   把 & 去掉
还有,你用的是 scanf 输入字符串,所以如果你的键入有空格的话,只能读入空格之前的部分,所以建议用 gets


[ 本帖最后由 韶志 于 2013-4-27 12:51 编辑 ]

三十年河东,三十年河西,莫欺少年穷!
2013-04-27 12:48
吃肉无罪
Rank: 2
等 级:论坛游民
帖 子:7
专家分:30
注 册:2013-4-10
收藏
得分:0 
scanf ("%s",&a);
a已经是一个地址了,所以不用&a了
2013-04-27 12:48
雪狼MJ
Rank: 8Rank: 8
来 自:甘肃
等 级:蝙蝠侠
威 望:4
帖 子:267
专家分:853
注 册:2012-5-27
收藏
得分:20 
ANSI C中没有scanf_s(),只有scanf(),scanf()在读取时不检查边界,所以可能会造成内存泄露。所以vc++2005/2008中提供了scanf_s(),在调用时,必须提供一个数字以表明最多读取多少位字符。

还有,那个a是字符串,变量名就是首地址,所以没必要再加个取址符&了,直接scanf("%s", a); 就行了

Edsger Dijkstra:算法+数据结构=程序
2013-04-27 12:51
jokerbat
Rank: 2
等 级:论坛游民
帖 子:77
专家分:91
注 册:2012-2-1
收藏
得分:0 
学习
2013-04-27 15:22
czzdcn123
Rank: 7Rank: 7Rank: 7
来 自:江西
等 级:黑侠
威 望:3
帖 子:258
专家分:510
注 册:2013-3-7
收藏
得分:0 
a就是表示数组的首地址
2013-04-27 16:10
gina620
Rank: 2
等 级:论坛游民
帖 子:3
专家分:10
注 册:2013-4-27
收藏
得分:0 
5楼正解。。。

]IT专业面试网jobexam。net
2013-04-27 17:24
快速回复:字符串函数
数据加载中...
 
   



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

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