注册 登录
编程论坛 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