| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 752 人关注过本帖
标题:求助,关于字符串的插入函数,看下我错在那里了???
只看楼主 加入收藏
zglcx123
Rank: 2
等 级:论坛游民
帖 子:60
专家分:10
注 册:2007-7-2
收藏
 问题点数:0 回复次数:6 
求助,关于字符串的插入函数,看下我错在那里了???
程序代码:
[code]
//把输入的第二个字符串插入到第一个字符串里
#include<stdio.h>
int number1 = 0, number2 = 0;
char string1[50], string2[30];//2个字符串

int main(void)
{

    int i, start;
    char word1, word2;
    void insertString(char string1_b[50], char string2_b[30], int start_b);
    /*插入字符串函数,
    第三个参数为插入第一个字符串是的起始位置*/

    printf("Input words: ");//输入第一个字符串
    for(i = 0; word1 != '\n'; ++i)
    {
        word1 = getchar();
        string1[i] = word1;

    }
    number1 = i-1;//记下字符个数
    string1[i] = '\0';


    printf("Input other words: ");//输入第二个字符串
    for(i = 0; word2 != '\n'; ++i)
    {
        word2 = getchar();
        string2[i] = word2;
    }
    number2 = i-1;//记下字符个数
    string2[i] = '\0';

    printf("Input this start: ");//起始位置
    scanf("%d", &start);
    
    insertString(string1, string2, start);//调用函数

    while( (string1[i]) != '\0')//输出
    {
        printf("%c", string1[i]);
        ++i;
    }

    printf("\n");

    return 0;
}


void insertString(char string1_b[50], char string2_b[30], int start_b)
{
    int x, y,z= 0;
    x = number1;

    while(x != start_b - 1);//把第一个字符串中在起始位置之后的字符全部后移 number2位
    {
        string1_b[x + number2] = string1_b[x];
        --x;

    }


    for(y = 0; y < number2; ++y)//插入到腾出来的位置
    {
        string1_b[start_b + y] = string2_b[y];
    }


    while(string1_b[z] != '\0')//把局部数组的值 复制到,全局数组中,方便main函数打印
    {
        string1[z] = string1_b[z];
        ++z;
    }


}


[/code]
搜索更多相关主题的帖子: 函数 字符 
2008-04-04 19:46
zglcx123
Rank: 2
等 级:论坛游民
帖 子:60
专家分:10
注 册:2007-7-2
收藏
得分:0 
没人帮忙吗?
2008-04-08 10:21
zglcx123
Rank: 2
等 级:论坛游民
帖 子:60
专家分:10
注 册:2007-7-2
收藏
得分:0 
再问下,那里错了,,没人帮助吗,,我哭4555555
2008-04-09 15:14
mqh21364
Rank: 1
等 级:新手上路
帖 子:642
专家分:0
注 册:2008-2-28
收藏
得分:0 
//把输入的第二个字符串插入到第一个字符串里
#include<stdio.h>
int number1 = 0, number2 = 0;
char string1[50], string2[30];//2个字符串

int main(void)
{

    int i, start;
    char word1, word2;
    void insertString(char string1_b[50], char string2_b[30], int start_b);
    /*插入字符串函数,
    第三个参数为插入第一个字符串是的起始位置*/

    printf("Input words: ");//输入第一个字符串
    for(i = 0; word1 != '\n'; ++i)
    {
        word1 = getchar();
        string1[i] = word1;

    }
    number1 = i-1;//记下字符个数
    string1[i] = '\0';

    printf("Input other words: ");//输入第二个字符串
    for(i = 0; word2 != '\n'; ++i)
    {
        word2 = getchar();
        string2[i] = word2;
    }
    number2 = i-1;//记下字符个数
    string2[i] = '\0';

    printf("Input this start: ");//起始位置
    scanf("%d", &start);
   
    insertString(string1, string2, start);//调用函数
@   i = 0;   //Set i = 0
    while( (string1[i]) != '\0')//输出
    {
        printf("%c", string1[i]);
        ++i;
    }

    printf("\n");

    return 0;
}


void insertString(char string1_b[], char string2_b[], int start_b)
{
    int x, y, z= 0, i, j;
    x = number1;
@   while(x != start_b - 1)//把第一个字符串中在起始位置之后的字符全部后移 number2位
    {
        string1_b[x + number2] = string1_b[x];
        --x;
    }


@   for(y = 0; y < number2; y++)//插入到腾出来的位置
    {
        string1_b[start_b + y] = string2_b[y];
    }


    while(string1_b[z] != '\0')//把局部数组的值 复制到,全局数组中,方便main函数打印
    {
       string1[z] = string1_b[z];
        ++z;
    }


}

我改了3个地方,加@的地方.
还有一个可能出现的错误就是数组string1越界.我没考虑.

前不见古人,后不见来者。念天地之悠悠,独怆然而涕下。
2008-04-09 16:15
mqh21364
Rank: 1
等 级:新手上路
帖 子:642
专家分:0
注 册:2008-2-28
收藏
得分:0 
不要在while后面加个分号,害死我了,找了半天.........

前不见古人,后不见来者。念天地之悠悠,独怆然而涕下。
2008-04-09 16:16
now
Rank: 1
来 自:广州
等 级:新手上路
帖 子:544
专家分:0
注 册:2007-11-9
收藏
得分:0 
程序代码:
/*借助库函数实现插入操作---但没有对s1进行容量确认*/
void insertString( char *s1,char *s2,int n)       
{
    if(n>0 && n<=strlen(s1)+1)
    {
      strcat(s2,(s1+n-1));      //将插入位置后面的字符连接到s2
      *(s1+n-1)='\0';          //在要插入位置截断原字符串s1;
      strcat(s1,s2);          //连接完整;
           puts(s1);
    }
    else 
       puts("ERROR!Can't insert !");
}

GIS
Geographic Information System
你在哪里?——》你的坐标?
2008-04-09 20:14
zglcx123
Rank: 2
等 级:论坛游民
帖 子:60
专家分:10
注 册:2007-7-2
收藏
得分:0 
我这几天自己找出来了,,主要错在 while后有个分号。。
害我搞了几天。难过呀
2008-04-11 20:54
快速回复:求助,关于字符串的插入函数,看下我错在那里了???
数据加载中...
 
   



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

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