回 帖 发 新 帖 刷新版面

主题:高手们帮帮忙啊!!!!

#include"stdio.h"
char *strrep(char *s1,char *s2,int pos)
{
    int i,j;
    pos--;
    i=0;
    for(j=pos;s1[j]!='\0';j++)
        if(s2[i]!='\0')
            {
                s1[j]=s2[i];
                i++;
            }
        else
            break;
    return s1;
}
void main()
{
    char string1[100];
    char string2[50];
    int position;
    printf("\nPlease input original string:");
    gets(string1);
    printf("\nPlease input substitute string:");
    gets(string2);
    printf("\nPlease input substitute position:");
    scanf("%d",&position);
    strrep(string1,string2,position);
    printf("\nThe final string:%s\n",string1);
}
   编译器编译时没有错误
 运行的时候却出了问题
    帮我看看这是为什么啊!!!!!!!!!!

回复列表 (共10个回复)

沙发

你定义的函数用法有点问题,按照你的意思,函数调用应该这么写:
string1=strrep(string1,string2,position);

板凳

不用啊,不返回都行。指针可以直接改变实参的值啊。
    像你那样编译都有错!

3 楼

我把你的代码贴过来执行了一下,得到了正确的结果。不知道你用的什么编译环境,出的又是什么样的问题呢?
我写上面那条建议的时候确实疏忽了,指针类型是不能强制赋给数组名的,呵呵。不过你的程序既然不需要用这个返回值可以把返回值去掉:)

4 楼

你一直把程序运行完了?我就是最后输入数字的时候说什么存为一个什么东西。

5 楼

[quote]你定义的函数用法有点问题,按照你的意思,函数调用应该这么写:
string1=strrep(string1,string2,position);
[/quote]
说的很正确!你定义函数时,是定义了一个返回一个指针的函数!所以在调用的时候必须有一个指针变量来接收这个返回值

6 楼

深圳市华信群英科技有限公司与知名通信软件公司正式签订定向输送人才的合作协议
针对想进入IT软件行业的有志人士提供专业的企业内训
实训课程采用“2+3”分段教学模式,分为2个月理论强化和3个月项目实训两个阶段
实训前就签订就业安置协议,岗前实训后入职
不仅学费优惠而且是企业定向培训定向招聘,百分百保证就业
有意向请登录www.szctt.com,或加QQ:1179397962做详细咨询

7 楼

不错,顶了,给你置顶。继续发此类帖子。

8 楼

也来做做看哦,谢谢提供

9 楼


没看出来有什么问题!

10 楼

似乎没错啊 ..

我来回复

您尚未登录,请登录后再回复。点此登录或注册