一个简单的C语言问题,求助。。。

一个题目,如下:编写程序outch,程序读入一行字符,根据命令行中的参数进行不同的输出。若有以下命令行:outch-2程序对所读入的一行字符输出最后2个字符若有以下命令行... 一个题目,如下:
编写程序outch,程序读入一行字符,根据命令行中的参数进行不同的输出。若有以下命令行:
outch -2 程序对所读入的一行字符输出最后2个字符
若有以下命令行:
outch +6 程序对所读入的一行字符输出开头的6个字符
若命令行中没有参数,则隐含规定输出最后10个字符。为简单起见,命令行的参数值保护以为数字。

新手求助,谢谢!
展开
 我来答
欧漪蹉弘化
2019-05-24 · TA获得超过3504个赞
知道大有可为答主
回答量:3058
采纳率:29%
帮助的人:189万
展开全部
输出结果:1234
这是一个字符串转整数的程序:从头开始,依次取出字符串中的字符,当前整数向前进一位(x10),并将取出的字符作为个位数添加到整数的末尾。其中,s++表示字符串指针向后移,取下一个字符;*s-'0',当前字符跟
'0’

ASCII
编码之差,就是当前字符字面显示的数字(比如
'4'-'0’=4,实际上是
ASCII
编码之差 52-48=4 )

完整的程序:
#include
<stdio.h>
int
str_to_num(char
*s)
{

int
k=0;

while(*s)
k
=
k*10
+
*s++
-
'0';

return
k;
}
int
main()
{

char
*s
=
"1234";

printf("string
value: %s,
number
value:
%d\n",
s,
str_to_num(s));

getchar();

return
0;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
bigshuye
2010-02-28 · TA获得超过2320个赞
知道大有可为答主
回答量:5658
采纳率:0%
帮助的人:4488万
展开全部
void main(int argc,char **argv)
{
char inBuff[256];
int len;
int v;
char outBuff[256];

v=-10;

if(argc >= 2)
{
v=atoi(argv[1]);
}

printf("please input:");
fgets(inBuff,255,stdin);
len = strlen(inBuff);

memset(outBuff,0,sizeof(outBuff));
if(v>0)
{
if(v > len)
v=len;
memcpy(outBuff,inBuff,v);
outBuff[v]=0;

}
else
{
v=0-v;
if(v > len)
v=len;
memcpy(outBuff,&inBuff[len-1-v],v);
outBuff[v]=0;

}
printf("outBuff:%s\r\n",outBuff);

system("pause");

}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
梁洲逄采蓝
2020-06-09 · TA获得超过4198个赞
知道小有建树答主
回答量:3167
采纳率:29%
帮助的人:223万
展开全部
int
k
=
f("1234");

或者:

char
num[]="1234";

int
k
=
f(num);
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式