一个郁闷的C语言小问题
2011-03-30 16:16
295 查看
好久没写博客了
,一是懒,二是没什么可写,或者说最近真正看书的时间不多,时间也是花了的,都搞飞思卡尔了,不过调车这个东西,很耗时间的,但也确实有趣。
今天在同学那看到了KR的《The C Programming Language》,说来惭愧,一时说自己是搞软件的,但却没有看完这本最最经典的著作。
直接翻到第7章输入与输出,做第一个练习题7-1,题目是编写一个程序,根据它自身被调用时存放在argv[0]中的名字,实现将大写字母转换为小写字母或将小写字母转换为大写字母的功能。
程序很easy,实现如下(平台ubuntu)
如果程序名第一个字母是u或U则为小写转大写,否则为大写转小写。
测试如下:
输入panghui,输出依旧是panghui,悲剧了。。。
。。。
。。。
一时间还真不知道错哪了,过程不说了,纠结了很久,也许高手一下就看出来了吧。
写个程序程序看看。
好了,问题很明显了,这个当时还真没想到,我以为./在Linux下无非是说明程序在当前目录中寻找而已,结果不是的哦,找到了问题,修改就很简单了,直接是argv[0][2]就可以了。
结果如下:
----------------------------------------------------------------------------------
转载我博客文章郑重声明:技术性网站著名原创作者即可转载,商业性网站必须经过我的同意才能转载,否则追究责任——
pang123hui的博客:
博客园http://www.cnblogs.com/pang123hui/
CSDNhttp://blog.csdn.net/pang123hui/
,一是懒,二是没什么可写,或者说最近真正看书的时间不多,时间也是花了的,都搞飞思卡尔了,不过调车这个东西,很耗时间的,但也确实有趣。
今天在同学那看到了KR的《The C Programming Language》,说来惭愧,一时说自己是搞软件的,但却没有看完这本最最经典的著作。
直接翻到第7章输入与输出,做第一个练习题7-1,题目是编写一个程序,根据它自身被调用时存放在argv[0]中的名字,实现将大写字母转换为小写字母或将小写字母转换为大写字母的功能。
程序很easy,实现如下(平台ubuntu)
#include <stdio.h> #include <stdlib.h> #include <ctype.h> int main(int argc, char **argv) { int (*convcase[2])(int) = {toupper, tolower}; int func; int result = EXIT_SUCCESS; int ch; if(argc > 0) { if(toupper((unsigned char)argv[0][0]) == 'U') { func = 0; } else { func = 1; } while((ch = getchar()) != EOF) { ch = (*convcase[func])((unsigned char)ch); putchar(ch); } } else { fprintf(stderr, "Unknown name. Can't decide what to do./n"); result = EXIT_FAILURE; } return result; }
如果程序名第一个字母是u或U则为小写转大写,否则为大写转小写。
测试如下:
输入panghui,输出依旧是panghui,悲剧了。。。
。。。
。。。
一时间还真不知道错哪了,过程不说了,纠结了很久,也许高手一下就看出来了吧。
写个程序程序看看。
#include <stdio.h> #include <stdlib.h> int main(int argc, char* argv[]) { int i; printf("test main parameter/n"); printf("argc:%d/n", argc); for(i=0;i<argc;i++) { printf("argv[%d]:%s/n", i, argv[i]); } exit(0); }
好了,问题很明显了,这个当时还真没想到,我以为./在Linux下无非是说明程序在当前目录中寻找而已,结果不是的哦,找到了问题,修改就很简单了,直接是argv[0][2]就可以了。
结果如下:
----------------------------------------------------------------------------------
转载我博客文章郑重声明:技术性网站著名原创作者即可转载,商业性网站必须经过我的同意才能转载,否则追究责任——
pang123hui的博客:
博客园http://www.cnblogs.com/pang123hui/
CSDNhttp://blog.csdn.net/pang123hui/
相关文章推荐
- 一个郁闷的C语言小问题
- 问一个C语言问题
- C语言malloc()的一个问题——堆越界的一个错误。
- C语言的一个奇怪的问题?
- C语言表达式计算顺序的一个小问题
- 我用c语言写了一个关于商人过河的问题
- 一个比较有意思的C语言问题
- 树莓派进阶之路 (032) -字符问题(2) - 用c语言怎样得到一个汉字的GB2312编码(转)
- 几次面试都遇到同一个问题,真是郁闷,长时间不写正则快忘了
- C语言指针——一个小问题
- 郁闷中的一个问题
- 碰到一个郁闷的SSL证书问题
- C语言编程:求n的阶乘问题。输入一个正整数n,输出n!
- C语言一个雷人的问题
- 一个有趣的C语言问题
- 一个隐蔽的C语言问题反思
- php调用一个c语言写的接口问题
- C语言中一个小问题
- 【C语言】猴子吃桃问题。猴子第一天摘下若干个桃子,每天都吃了前一天剩下的一半零一个,到第10天早上想再吃的时候,就剩下一个桃子. 求第一天共摘多少个桃子。
- 解决曾经让我郁闷的一个问题