编程论坛
注册
登录
编程论坛
→
C语言论坛
求助!大一新生零基础看不懂老师这次布置的
黑禁
发布于 2019-10-31 16:38, 1077 次点击
输入字串符运算表达式。实现加减法运算[attach]99586[/attach]
加法:两字符相加后得到有两字符串拼接成的新字符串
减法:输入一个字串符和数字,数字代表字符串末尾减去几位,若数字超过字符串长度,则清空
用函数实现
只有本站会员才能查看附件,请
登录
1 回复
#2
纯蓝之刃
2019-10-31 18:57
程序代码:
#include
<stdio.h>
#include
<stdlib.h>
#include
<string.h>
int
main()
{
char
str[
100
]={
0
},tmp[
100
]={
0
};
char
*temp1;
int
len=
0
,num=
0
;
printf(
"
请输入字符串:
"
);
scanf(
"
%s
"
,str);
temp1=strchr(str,
'
+
'
);
//
判断字符串是加还是减
if
(temp1==NULL)
{
temp1=strchr(str,
'
-
'
);
len=(temp1-str)/
sizeof
(
char
);
//
判断-号前的字符长度
while
((*(++temp1))!=
'
\0
'
)
{
num=num*
10
+*temp1-
48
;
//
计算-号后的数字
}
if
((len-num)>
0
)
strncpy(tmp,str,len-num);
//
将字符串前len-num的字符赋给tmp
else
strncpy(tmp,str,
0
);
printf(
"
删除%d个字符后的字符串:%s\n
"
,num,tmp);
}
else
{
strncpy(tmp,str,(temp1-str)/
sizeof
(
char
));
//
如果是加,将+前的字符付给tmp
strcat(tmp,temp1+
1
);
//
将+后的字符付给tmp
printf(
"
字符串和:%s\n
"
,tmp);
}
return
0
;
}
1