标题:求助!! 这个程序哪错了!
只看楼主
yunfeishizhe
Rank: 2
等 级:论坛游民
帖 子:40
专家分:54
注 册:2010-4-3
结帖率:100%
 问题点数:0 回复次数:3 
求助!! 这个程序哪错了!
#include<stdio.h>
#include<string.h>
#define MAX_SIZE  100
char *insert(char str[], char substr[], int i);
main()
{
    char str[]={"I am mashaofei"};
    char substr[]={"great"};
    int i=5;
    str=insert(str,substr,i); //error C2440: '=' : cannot convert from 'char *' to 'char [15]'   
  
  printf("%s",str);
}
char *insert(char str[], char substr[], int i)
{
    int size1=strlen(str);
    int size2=strlen(substr);
    int count ;
    for( count=size1; count>i; --count)
       str[count+size2]=str[count];
    for( count=0; count<size2; ++count)
    {
        str[i+1]=substr[count];
        i++;
    }
    return str;
}
各位帮忙看看啊!这个语法错在哪了?
搜索更多相关主题的帖子: include insert count 
2010-06-20 20:15
草狼
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:2
帖 子:577
专家分:1040
注 册:2010-4-6
得分:0 
str=insert(str,substr,i); str是数组的首地址,不是指针变量,当然不可以这么用了啊- -!
你另外定义个指针变量就可以了

#include<stdio.h>
#include<string.h>
#define MAX_SIZE  100
char *insert(char str[], char substr[], int i);
main()
{
    char str[]={"I am mashaofei"};
    char substr[]={"great"};
    char *a;
    int i=5;
    a=insert(str,substr,i);   
    printf("%s",a);
}
char *insert(char str[], char substr[], int i)
{
    int size1=strlen(str);
    int size2=strlen(substr);
    int count ;
    for( count=size1; count>i; --count)
       str[count+size2]=str[count];
    for( count=0; count<size2; ++count)
    {
        str[i+1]=substr[count];
        i++;
    }
    return str;
}
2010-06-20 20:28
sjw903
Rank: 2
等 级:论坛游民
帖 子:9
专家分:14
注 册:2008-10-3
得分:0 
str 这个是数组的名字,是常量的指针,当然不能赋值了, 你可以用另一个指针指向它,然后在赋值
2010-06-20 20:31
yunfeishizhe
Rank: 2
等 级:论坛游民
帖 子:40
专家分:54
注 册:2010-4-3
得分:0 
奥,谢谢啊,又学了一个
2010-06-20 20:45



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-310741-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.475230 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved