作者sk2 (夏天来了)
看板C_and_CPP
标题Re: [问题] 问一个简单的问题 谢谢
时间Tue Apr 21 01:03:13 2009
※ 引述《drey (drey)》之铭言:
: 不好意思请问大家
: 我想写一个选单的程式这样
: 第一个是要把字串反转复制
: abc变成cba这样
: 我是这样子写的
: #include<stdio.h>
: #include<string.h>
: main()
: {
: int a;
: printf("输入\n");
: scanf("%d",&a);
^^^^
这边因为你用 %d,所以 假设你输入 1 ,则 a == 1
假设你输入 2 ,则 a == 2
......
: switch (a)
: {
: case '1':
用''夹起来代表ascii code,'1' == 48
'2' == 49
......
所以你这4个case都不会被执行到
: {
: str1();
: break;
: }
: case '2':
: {
: break;
: }
: case '3':
: break;
: case '4':
: break;
: }
: return 0;
: }
: void str1()
: {
: int i,j;
: char b[10];
: char c[10];
: gets(b);
for(i=0,j=strlen(b)-1;i<strlen(b);i++,j--)
: {
c[i]= b[j];
: }
c[i] = 0;
: printf("%s",c);
: }
: 编译器编译执行显示没有error
: 可是怎麽会在scanf後
: 程式就自己跳出来了?
: 麻烦大家回答一下
: 谢谢
: 感激不尽
: 谢谢
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 218.169.81.87
1F:推 ledia:哇 不要把 strlen 放到回圈条件事里吧 测一次呼叫一次很伤 04/21 01:21