| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1399 人关注过本帖
标题:整了N个小时没弄明白的小问题
只看楼主 加入收藏
heliujin
Rank: 2
等 级:论坛游民
帖 子:249
专家分:14
注 册:2006-3-14
结帖率:100%
收藏
 问题点数:0 回复次数:12 
整了N个小时没弄明白的小问题
在一个字符串数组中插入另一个数组 该怎么解决呢
我的代码如下:
#include"stdio.h"
#include"stdlib.h"
#include"string.h"

main()
{
    int i,j,k,n=3;//n为插入的位置
    char *p="abcd";
    char *q="123";
    char *m;
    m=(char*)malloc((strlen(p)+strlen(q))*sizeof(char));
    for(i=0;i<strlen(p);i++)
    {
        m[i]=p[i];
    }
    for(j=0;j<strlen(p)-3;j++)
    {
        m[j+strlen(q)+i]=m[j+i];
    }
    for(k=0;k<string(q);k++)
    {
        m[n+k]=q[k];
    }
    m[strlen(p)+strlen(q)]='\0';

    puts(m);
}
运行时有两个错误
Linking...
strings_text.obj : error LNK2001: unresolved external symbol _string
Debug/strings_text.exe : fatal error LNK1120: 1 unresolved externals
Error executing link.exe.

strings_text.exe - 2 error(s), 0 warning(s)

大家指点指点小弟吧 谢谢大家了
搜索更多相关主题的帖子: include 字符串 
2007-12-15 21:36
cosdos
Rank: 9Rank: 9Rank: 9
来 自:ShangHai
等 级:蜘蛛侠
威 望:6
帖 子:2109
专家分:1385
注 册:2007-6-19
收藏
得分:0 

/* 拼接2个字符串  */

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

int main(void)
{
    int i, j;
    char * A_str = "abcd";   /* 指向字符串常量的指针 */
    char * B_str = "123";    /* 指向字符串常量的指针 */
    char * C_str;      /* char 指针 */
   
    C_str = (char *)malloc((strlen(A_str) + strlen(B_str)) * sizeof(char));
   
    i = j = 0;
    while(C_str[i] = A_str[i])
        ++i;

    while(C_str[i] = B_str[j])
    {
        ++j;
        ++i;
    }

    puts(C_str);
   
    getchar();
    free(C_str);
    return 0;
}


[[italic] 本帖最后由 cosdos 于 2007-12-15 23:12 编辑 [/italic]]

—>〉Sun〈<—
2007-12-15 23:10
heliujin
Rank: 2
等 级:论坛游民
帖 子:249
专家分:14
注 册:2006-3-14
收藏
得分:0 
我的意思是在字符串中间插入数组,不是从后面拼接数组
呵呵
谢谢楼上的啊
2007-12-15 23:31
cosdos
Rank: 9Rank: 9Rank: 9
来 自:ShangHai
等 级:蜘蛛侠
威 望:6
帖 子:2109
专家分:1385
注 册:2007-6-19
收藏
得分:0 
字符串中插入数组

—>〉Sun〈<—
2007-12-15 23:37
heliujin
Rank: 2
等 级:论坛游民
帖 子:249
专家分:14
注 册:2006-3-14
收藏
得分:0 
是啊  可以实现吗?大家指点指点吧 谢谢大家了
2007-12-16 17:02
jianfeng520
Rank: 1
等 级:新手上路
帖 子:30
专家分:0
注 册:2007-12-16
收藏
得分:0 
就这样了哈 很简单的拉
#include"stdio.h"
#include"stdlib.h"
#include"string.h"

main()
{
    int i,j,k,n=3;//n为插入的位置
    char *p="abcd";
    char *q="123";
    char *m;
    m=(char*)malloc((strlen(p)+strlen(q))*sizeof(char));
    for(i=0;i<n;i++)
    {
        m[i]=p[i];
    }
    for(j=0;j<strlen(q);j++,i++)
    {
        m[i]=q[j];
    }
    for(k=0;k<strlen(p)-3;k++,i++)
    {
        m[i]=p[k];
    }
    m[i]='\0';
    puts(m);

    }
2007-12-16 17:35
heliujin
Rank: 2
等 级:论坛游民
帖 子:249
专家分:14
注 册:2006-3-14
收藏
得分:0 
谢谢楼上的高手,其实我的意思是首先建立p那个字符串数组 然后在其中插入另一个字符串数组,而不是一段一段的建立地,能帮帮我?您这样做实现了功能,但不符合我的本意,能再指点指点吗?谢谢大家了
2007-12-16 23:29
许一民
Rank: 1
来 自:江苏连云港
等 级:新手上路
帖 子:60
专家分:0
注 册:2007-9-29
收藏
得分:0 
#include"stdio.h"
#include"stdlib.h"
#include"string.h"

main()
{
    int i,j,k,n=3;//n为插入的位置
    char *p="abcd";
    char *q="123";
    char *m;
    m=(char*)malloc((strlen(p)+strlen(q))*sizeof(char));
    for(i=0;i<n;i++)
    {
        m[i]=p[i];
    }
    for(j=0;j<strlen(q);j++)
    {
        m[n+j]=q[j];
    }
    for(k=0;k<strlen(p)-n;k++)
    {
        m[n+strlen(q)+k]=p[n+k];
    }
    m[strlen(p)+strlen(q)]='\0';

    puts(m);
}
2007-12-17 12:16
许一民
Rank: 1
来 自:江苏连云港
等 级:新手上路
帖 子:60
专家分:0
注 册:2007-9-29
收藏
得分:0 
上面的程序是照您原来的程序修改的。
2007-12-17 12:19
heliujin
Rank: 2
等 级:论坛游民
帖 子:249
专家分:14
注 册:2006-3-14
收藏
得分:0 
首先感谢楼上的高手。这样做功能是实现了,但我的意思是在一个已经建立好的完整的字符串数组的基础上在其中插入另一个字符串,您这样做的本质和我说的不是一个本质啊,我的意思是先建立p然后在p第n个元素后插入q,其中有一个把p中第n个元素后的字符向后移动strlen(q)位的操作,最后再在移处的位置上插入q,就是这样的。
再次麻烦大家了,谢谢大家了、。
2007-12-17 15:32
快速回复:整了N个小时没弄明白的小问题
数据加载中...
 
   



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

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