| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 547 人关注过本帖
标题:请帮解一下这道C语言题
只看楼主 加入收藏
惜缘
Rank: 1
等 级:新手上路
帖 子:32
专家分:4
注 册:2010-7-2
结帖率:100%
收藏
已结贴  问题点数:5 回复次数:3 
请帮解一下这道C语言题
这道题的目的是把s1字符串插在s字符串中!
请用指针:
主函数是这样的:
main()
{
    char *s,*s1;
    int i;
    printf("input two string:\n");
    scanf("%s%s",s,s1);
    printf("s=%s s1=%s",s,s1);
    printf("\ninput insert number:\n");
    scanf("%d",&i);
    insert(s,s1,i);
    getch();
}
请继续编写insert() 函数。

搜索更多相关主题的帖子: C语言 
2010-07-02 12:44
do8do8do8
Rank: 10Rank: 10Rank: 10
来 自:沙滩
等 级:贵宾
威 望:17
帖 子:366
专家分:1845
注 册:2010-7-2
收藏
得分:3 
void insert(char ss[],char s1[],int i)
{
  char s[100];
  int j,j1;
  int len_s1,len_s;
  strcpy(s,ss);
 
  len_s = strlen(s);
  len_s1 = strlen(s1);
  for(j=len_s-1;j>=(i-1);j--)  s[j+len_s1]=s[j];
  for(j1=0;j1<len_s1;j1++)  s[++j]=s1[j1];
  s[j+len_s1+1]='\0';
  printf("%s\n",s);
}
  吃鹅吃柳又爱我吧

学C语言从底层开始,学编程从问题开始,一日学会C!!!
2010-07-02 14:52
pbreak
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:1
帖 子:83
专家分:558
注 册:2007-5-10
收藏
得分:3 
程序代码:
#include<stdio.h>
#include<stdlib.h>
#include <iostream>
#include <assert.h>
using namespace std;

char * insert(char *,char *,int);

int main(int argc, char* argv[])
{
    char *s,*s1;
    int i = 0;
    printf("input the first string:\n"); //输入第一个字符串
    getchar();
    s = new char[stdin->_cnt + 1];
    stdin->_base[stdin->_cnt] = '\0';
    strcpy(s,stdin->_base);

    printf("input the second string:\n"); //输入第二个字符串
    fflush(stdin);
    getchar();
    s1 = new char[stdin->_cnt + 1];
    stdin->_base[stdin->_cnt] = '\0';
    strcpy(s1,stdin->_base);
    fflush(stdin);
    printf("s=%s s1=%s",s,s1);
    printf("\ninput insert number:\n");//输入要插入的位置
    scanf("%d",&i);
    char *str = insert(s,s1,i);
    printf("%s\n",str);
    delete[] str;
    delete[] s;
    delete[] s1;
    return 0;
}

char * insert(char *strDest,char *strSrc,int pos)
{
    assert((strDest != NULL)&&(strSrc != NULL));
    int strSize = strlen(strDest) + strlen(strSrc);
    char * strTemp = new char[strSize + 1];
    if(pos < strlen(strDest))
    {
        for(int i = 0; i < strSize ; ++i)
        {
            if(i < pos)
            {
                strTemp[i] = strDest[i];
            }
            else
                if( pos <= i && i < (pos + strlen(strSrc)))
                {
                    strTemp[i] = strSrc[i - pos];
                }
                else
                {
                    strTemp[i] = strDest[i - strlen(strSrc)];
                }
        }   
    }
    else
    {
        strcpy(strTemp,strDest);
        strcat(strTemp,strSrc);
    }
    strTemp[strSize] = '\0';
    return strTemp;
}
2010-07-02 16:45
惜缘
Rank: 1
等 级:新手上路
帖 子:32
专家分:4
注 册:2010-7-2
收藏
得分:0 
谢谢
2010-07-02 20:44
快速回复:请帮解一下这道C语言题
数据加载中...
 
   



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

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