社区
C语言
帖子详情
达人来帮我看看这个程序的结果是什么,谢谢(顺便散分)
zzitmf
2005-06-16 09:14:37
#include <string.h>
main(int argc ,char *argv[ ])
{ int i,len=0;
for(i=1;i<argc;i+=2) len+=strlen(argv[i]);
printf("%d\n",len);
} 经编译链接后生成的可执行文件是ex.exe,若运行时输入以下带参数的命令行
ex abcd efg h3 k44
执行后输出结果是()
为什么?我有结果,就是不知道为什么
...全文
224
23
打赏
收藏
达人来帮我看看这个程序的结果是什么,谢谢(顺便散分)
#include main(int argc ,char *argv[ ]) { int i,len=0; for(i=1;i<argc;i+=2) len+=strlen(argv[i]); printf("%d\n",len); } 经编译链接后生成的可执行文件是ex.exe,若运行时输入以下带参数的命令行 ex abcd efg h3 k44 执行后输出结果是() 为什么?我有结果,就是不知道为什么
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
23 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
sea2000cn
2005-06-22
打赏
举报
回复
学习!
jixingzhong
2005-06-22
打赏
举报
回复
mark!!
Audi_TT
2005-06-17
打赏
举报
回复
up
Flood1984
2005-06-17
打赏
举报
回复
int argc ,char *argv[ ]
主要是不理解这些参数,什么意思?
同时怎么编译运行,我在TC上试了,根本行不通
----------------------
运行得在DOS下进入ex.exe索在得目录输入:
ex abcd efg h3 k44
光在TC下是不能调试的。
kunp
2005-06-16
打赏
举报
回复
http://blog.csdn.net/kunp/archive/2005/01/07/243592.aspx
这篇文章专门讲到main的参数,看看吧
kunp
2005-06-16
打赏
举报
回复
输出的结果是6阿,因为你求得第一个参数和第三个参数的字符串长度和阿
strlen("abcd") + strlen("h3")
下面这个程序应该对你了解argc, argv会有所帮助,
---------------------------------------------------------------------
#include <stdio.h>
#include <stdlib.h>
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
int i = 0;
int len = 0;
for(i = 1; i < argc; i += 2)
{
len += strlen(argv[i]);
printf("argv[%d] : %s\n", i, argv[i]); //打印你计算的参数及其长度
}
printf("%d\n\n",len);
printf("now look here\n");
//打印参数的总个数
printf("argc: %d\n", argc);
//打印所有参数
for(i = 0; i < argc; i++)
{
printf("argv[%d] : %s\n", i, argv[i]);
}
system("PAUSE");
return 0;
}
zhousqy
2005-06-16
打赏
举报
回复
应该是6啊.
Bsq28
2005-06-16
打赏
举报
回复
结果应该是 6 吧。
ex abcd efg h3 k44
总体来讲应该是五个参数,其中
argv[0] = "ex"
argv[1] = "abcd"
argv[2] = "efg"
argv[3] = "h3"
argv[4] = k44
那个FOR 循环, 步长是2 , 计算字符串长度之和的,
rick29
2005-06-16
打赏
举报
回复
argc是包括可执行文件名的程序参数个数,你这里argc就等于5
argv是各个参数组成的数组,你这里
argv[0] = "ex"
argv[1] = "abcd"
argv[2] = "efg"
...
然后看程序,应该没啥问题了吧?
kobefly
2005-06-16
打赏
举报
回复
#include <string.h>
main(int argc ,char *argv[ ])
{ int i,len=0;
for(i=1;i<argc;i+=2) len+=strlen(argv[i]);
printf("%d\n",len);
}
经编译链接后生成的可执行文件是ex.exe,若运行时输入以下带参数的命令行
ex abcd efg h3 k44
这样的话,argc == 5
argc[0] = "ex";
argc[1] = "abcd";
.....
for(i=1;i<argc;i+=2) len+=strlen(argv[i]);
所以
len = strlen("abcd") + strlen("h3") = 6
summerICEREDTEA
2005-06-16
打赏
举报
回复
我输出6啊
naturemickey
2005-06-16
打赏
举报
回复
结果是6,就是“abcd”和“h3”的长度和。
charles_ju
2005-06-16
打赏
举报
回复
老大:ex就是文件名啊,还有啊argc,argv可以随便找一本书查一下啊,很简单的啊,这个你调试的时侯一定要选择参数的啊,否则不能调试的啊
zzitmf
2005-06-16
打赏
举报
回复
int argc ,char *argv[ ]
主要是不理解这些参数,什么意思?
同时怎么编译运行,我在TC上试了,根本行不通
heskyII
2005-06-16
打赏
举报
回复
//我反对。
#include <string.h>
main(int argc ,char *argv[ ])
{ int i,len=0;
for(i=1;i<argc;i+=2) len+=strlen(argv[i]);
printf("%d\n",len);
} 经编译链接后生成的可执行文件是ex.exe,若运行时输入以下带参数的命令行
ex abcd efg h3 k44
//我得到的结果:8。
//原因如下:argc 指的是你输入的参数个数,虽然这里只输入了5个(argv[1],argv[2],argv[3],argv[4],argv[5])。但还有一个系统默认的参数argv[0],它存放的是该程序的程序名(具体是什么记不住了,呵呵)。所以在循环中,取了argv[1],argv[3],argv[5],它们的总长度因该是8。
tian_su
2005-06-16
打赏
举报
回复
有四个参数,abcd efg h3 k44
i=1;i<argc;i+=2
当i=1和i=3时,计算长度strlen(argv[i]);
输出长度和
6
应该是很详细了吧
twjneedstudy
2005-06-16
打赏
举报
回复
mark!!
mostideal
2005-06-16
打赏
举报
回复
mark!!
trackant
2005-06-16
打赏
举报
回复
6,argv[0]是ex自己,而不是ex程序的第一个参数,这个是比较容易误解的地方
foochow
2005-06-16
打赏
举报
回复
mark!
加载更多回复(3)
社会化电商的正确解读:C2C2B2C的关键棋子.docx
社会化电商的正确解读:C2C2B2C的关键棋子.docx
WIFI遍地 巧用免费无线上网
在“无线城市”不断推进的今天,无论你是哪个运营商的用户,都可以享受一定时长的免费WIFI,甚至还可以漫游全国。但是,要说多数手机、PC、Pad用户都知道利用运营商的这一利好,肯定也不是事实。总有一些用户,遍地有WIFI信号,却还是要用自己的3G流量。或者,嫌麻烦,免费WIFI热点到底在哪里呀?我怎么找得到?现在,就请
达人来
教你几个技巧。大人说,生活无难事,只怕有心人。IT168网友已经整理出大把“秘籍”,只恨你不知。
小学三年级品德与社会上册家乡风味小吃PPT教案.pptx
小学三年级品德与社会上册家乡风味小吃PPT教案.pptx
小红书整体框架玩法 pdf
小红书整体框架玩法 pdf
家得路23年多平台营销方案.pptx
家得路23年多平台营销方案.pptx
C语言
70,024
社区成员
243,263
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章