m0_47428395 2022-11-03 10:40 采纳率: 100%
浏览 37
已结题

C语言字符串作为函数参数和赋值问题

4.编一程序,将字符串中的第m个字符开始的全部字符复制成另一个字符串。
要求在主函数中输入字符串及m的值并输出复制结果,在被调函数中完成复制。

1)请问这道题怎么做,我这样写,但总是报错:[Error] expected primary-expression before 'char'
2)如何给字符串赋值,这样写对吗? str3[15]= char fun(str1,m)

#include<stdio.h>
#include<string.h>

char fun(char *,int );

int main()
{char str1[15],str3[15];
int m;
gets(str1);
scanf("%d",&m);
str3[15]= char fun(str1,m)
puts(str3);
}

char fun(char *p,int m)
{ char str2[15];
for(;p!='\0';m++){
str2[15]=
(p+m);
return str2[m];
}

}

  • 写回答

3条回答 默认 最新

  • 关注

    str3[15]= char fun(str1,m)这没写不对,直接 用 str3= fun(str1,m)
    另外,fun函数中的str2作用范围仅仅在fun函数中,出了fun函数就被回收了,这没写是不对的。
    代码修改了一下,运行结果:

    img

    代码:

    #define _CRT_SECURE_NO_WARNINGS 1
    
    #include <stdio.h>
    #include <string.h>
    #include <stdlib.h>
    char* fun(char*, int,char* );
    
    int main()
    {
        char str1[15]; //原字符串
        char str2[15]; //需要替换成的字符串
        char* out;
        int m;
        gets(str1); //读入原字符串
        scanf("%d", &m); //读入长度
        getchar();//吸收回车符
        gets(str2); //读取需要替换成的字符串
        out = fun(str1, m,str2);
        printf("%s", out);
        return 0;
    }
    
    //将p字符串第m个字符之后的字符替换为t
    char* fun(char* p, int m, char* t)
    {
        int i = 0;
        int len = strlen(p) - m + strlen(t) + 1; //得到新字符串的长度
        char* str2 = (char*)malloc(strlen(p) + 1);
        for (i = 0; i < m - 1; i++) //先把前m-1个字符复制到新字符串中
            str2[i] = *(p + i);
    
        //将t中的字符复制到新字符串中
        for (; *t != '\0'; i++, t++)
            str2[i] = *t;
        str2[i] = 0;
        return str2;
    }
    
    
    
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 11月18日
  • 已采纳回答 11月10日
  • 创建了问题 11月3日

悬赏问题

  • ¥150 如图所示配置eNSP
  • ¥20 docker里部署springboot项目,访问不到扬声器
  • ¥15 netty整合springboot之后自动重连失效
  • ¥15 悬赏!微信开发者工具报错,求帮改
  • ¥20 wireshark抓不到vlan
  • ¥20 关于#stm32#的问题:需要指导自动酸碱滴定仪的原理图程序代码及仿真
  • ¥20 设计一款异域新娘的视频相亲软件需要哪些技术支持
  • ¥15 stata安慰剂检验作图但是真实值不出现在图上
  • ¥15 c程序不知道为什么得不到结果
  • ¥15 键盘指令混乱情况下的启动盘系统重装