| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 915 人关注过本帖
标题:数据结构——字符串的插入问题
取消只看楼主 加入收藏
ithaibo
Rank: 2
等 级:论坛游民
帖 子:52
专家分:50
注 册:2012-3-30
结帖率:50%
收藏
 问题点数:0 回复次数:2 
数据结构——字符串的插入问题
图片附件: 游客没有浏览图片的权限,请 登录注册
插入操作:将串s1插入到串s中的第i个位置,并产生新串s2.但是出现了输出时,插入的那一部分出现了乱码。
程序代码:
/*

 * 建立串s="abcdefghijklmn"和串s1="xyz"

 * 输出s

 * 输出串s的长度

 * 在串s的第9个字符位置插入串s1而产生串s2

 * 输出串s2

 * 删除串s中的第2个字符开始的5个字符而产生的串2

 * 输出串s2

 * 将串s的第2个字符开始的5个字符替换为s1而产生的串s2

 * 输出串s2

 * 提取串s中的第2个字符开始的10个字符而产生串s3

 * 输出串s3

 * 将串s1和串s2连接起来儿产生串s4

 * 输出串s4

 */
#include <stdio.h>
#include <stdlib.h>
#define Max 100
typedef struct String{
    char data[Max];
    int length;
}SqString;
void CreatStr(SqString *s, char temp_s1[]);
void DispStr(SqString s);
int StrLen(SqString s);
SqString InserStr(SqString s, int i, SqString s1);
int main(void) {
    SqString s, s1, s2, s3, s4;
    char temp_s1[]="abcdefghijklmn";
    char temp_s2[]="pqrst";
    CreatStr(&s, temp_s1);
    CreatStr(&s1, temp_s2);
    DispStr(s);
    printf("The length of the string of 's' is %d\n",StrLen(s));
    s2=InserStr(s, 9, s1);
    DispStr(s1);
    DispStr(s2);
    return 0;
}
void CreatStr(SqString *s, char temp_s1[]){
    int i;
    s->length=0;
    for(i=0; temp_s1[i]!='\0'; i++)
        s->data
        [i]=temp_s1[i];
    s->length=i;
}
void DispStr(SqString s){
    int i;
    if(s.length<=0)
        return;
    for(i=0; i<s.length;i++)
        printf("%c",s.data[i]);
    printf("\n");
}
int StrLen(SqString s){
    return s.length;
}
SqString InserStr(SqString s, int i, SqString s1){//在串s的第i个字符位置插入串s1而产生串s2
    int j;
    SqString s2;
    s2.length=0;
    if(i<=0||i>s.length+1)
        return s2;
    for(j=0; j<i-1; j++)
        s2.data[j]=s.data[j];
    for(j=0; j<s2.length; j++)
        s2.data[i+j-1]=s1.data[j];
    for(j=i-1; j<s.length; j++)
        s2.data[j+s1.length]=s.data[j];
    s2.length=s.length+s1.length;
    return s2;
}

代码如下
搜索更多相关主题的帖子: 字符串 
2013-04-13 10:33
ithaibo
Rank: 2
等 级:论坛游民
帖 子:52
专家分:50
注 册:2012-3-30
收藏
得分:0 
大家捧捧场呀!求关注
2013-04-13 10:51
ithaibo
Rank: 2
等 级:论坛游民
帖 子:52
专家分:50
注 册:2012-3-30
收藏
得分:0 
谢谢啦!终于发现了!哎,粗心啊……for(j=0; j<s2.length; j++)//这里不应该是s2.length,而是s1.length


[ 本帖最后由 ithaibo 于 2013-4-15 12:17 编辑 ]
2013-04-15 12:12
快速回复:数据结构——字符串的插入问题
数据加载中...
 
   



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

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