求助!关于高教版C语言教程练习题的讨论
第十一章 有这样一道编程题编写程序outch,程序读入一行字符,根据命令行中的参数进行不同的输出,若有以下命令行:
outch -2
程序对所读入的一行字符输出最后两个字符;
若有以下命令行:
outch +6
程序对所读入的一行字符输出开头6个字符。
若命令行中没有参数,则隐含规定输出最有10个字符。为简单起见,命令行的参数中只包含一位数字。
==============
本人代码如下:
#include <stdio.h>
#include <string.h>
#include <conio.h>
void output(char *s, int b, int e)
{ int i;
for(i=b; i<=e; i++)
printf("%c", *(s+i));
}
void main(int a, char *c[])
{ int n,len;
char *str;
clrscr();
str=(char*)malloc(50);
printf("\nPlease input a text line(>10 letters):\n");
scanf("%s", str);
len=strlen(str);
if(a>1)
n=*(c[1]+1)-'0';
else n=10;
if(a==1||*c[1]=='-')
output(str, len-n, len-1);
if(*c[1]=='+')
output(str, 0, n-1);
getch();
}
运行后,除隐含规定输出正确外,其他结果得不到!
请个位帮忙看看!!