一个简单的C语言问题,求助。。。
一个题目,如下:编写程序outch,程序读入一行字符,根据命令行中的参数进行不同的输出。若有以下命令行:outch-2程序对所读入的一行字符输出最后2个字符若有以下命令行...
一个题目,如下:
编写程序outch,程序读入一行字符,根据命令行中的参数进行不同的输出。若有以下命令行:
outch -2 程序对所读入的一行字符输出最后2个字符
若有以下命令行:
outch +6 程序对所读入的一行字符输出开头的6个字符
若命令行中没有参数,则隐含规定输出最后10个字符。为简单起见,命令行的参数值保护以为数字。
新手求助,谢谢! 展开
编写程序outch,程序读入一行字符,根据命令行中的参数进行不同的输出。若有以下命令行:
outch -2 程序对所读入的一行字符输出最后2个字符
若有以下命令行:
outch +6 程序对所读入的一行字符输出开头的6个字符
若命令行中没有参数,则隐含规定输出最后10个字符。为简单起见,命令行的参数值保护以为数字。
新手求助,谢谢! 展开
3个回答
展开全部
输出结果: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;
}
这是一个字符串转整数的程序:从头开始,依次取出字符串中的字符,当前整数向前进一位(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;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
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");
}
{
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");
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
int
k
=
f("1234");
或者:
char
num[]="1234";
int
k
=
f(num);
k
=
f("1234");
或者:
char
num[]="1234";
int
k
=
f(num);
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询