当前位置: 代码迷 >> C语言 >> 马上考试了 高手帮下忙可以吗 谢谢
  详细解决方案

马上考试了 高手帮下忙可以吗 谢谢

热度:133   发布时间:2005-04-21 09:52:00.0
马上考试了 高手帮下忙可以吗 谢谢
编写函数Str_cat(),其功能是将字符串str2连接到字符串str1的第k个字符后面.在主函数中输入syr1,str2和k的值,调入函数Str_cat后,输出str1.
搜索更多相关的解决方案: 考试  

----------------解决方案--------------------------------------------------------
# include <string.h>
然后调用strcat();  具体请查看系统帮助!
----------------解决方案--------------------------------------------------------
能把系统帮助的连接写下吗 我去看看 谢谢你了 :)
----------------解决方案--------------------------------------------------------
在TC 2.0下打出以下代码!
# include <string.h>
strcat();  
然后将光标移到strcat下,按Ctrl+F1
----------------解决方案--------------------------------------------------------
谢谢斑主啊   我去看看 第一次来 很多专用名词我还是不会啊  我去摸摸
----------------解决方案--------------------------------------------------------

//编写函数Str_cat(),其功能是将字符串str2连接到字符串str1的第k个字符后面 //在主函数中输入str1,str2和k的值,调入函数Str_cat后,输出str1. #include <stdio.h> #include <stdlib.h> #include <string.h>

#define MAXCHARACTER 100

static char str1[MAXCHARACTER]; static char str2[MAXCHARACTER];

void Str_cat(int);

void Str_cat(int k) { int str_1_length; int str_2_length; char *before_str; char *after_str; str_1_length=strlen(str1); str_2_length=strlen(str2); before_str=(char *)malloc((str_1_length+str_2_length+1)*sizeof(char)); if(!before_str) exit(1); for(int j=0;j<k;j++) before_str[j]=str1[j]; before_str[j]='\0'; after_str=(char *)malloc((str_1_length-k+1)*sizeof(char)); for(int i=k;i<str_1_length;i++) after_str[i-k]=str1[i]; after_str[i-k]='\0'; strcat(before_str,str2); strcat(before_str,after_str); printf("The string afer Str_cat is:\n"); puts(before_str); free(before_str); free(after_str); }

void main() { int k; printf("please enter the first string:\n"); gets(str1); fflush(stdin); printf("please enter the second string:\n"); gets(str2); fflush(stdin); do{ printf("pleas enter the positon(1~%d):\n",strlen(str1)); scanf("%d",&k); fflush(stdin); }while(k>strlen(str1)||k<1); Str_cat(k); } //你先看看 把 //不懂的话,再聊把


----------------解决方案--------------------------------------------------------
#include&lt;stido.h&gt;
#include&lt;stdlib.h&gt;
#define N 100
#define M 80
void str_cat(int k,char *str1,char *str2)
        {
                    char *ptr;
                    register int i,j;   
                    ptr=(char *)malloc((M+N)*sizeof(char));
                    for(i=0;i&lt;k:i++)  ptr[i]=str1[i];
                    for(i=0;str2[i]!='\0';i++)  ptr[i+k]=str2[i];   
                    for(i=k+i-1,j=0;str1[1]!='\0';j++,i++)   ptr[i]=str1[k+j];
                    ptr[i]='\0';   
                    printf("%s\n",ptr);
         }
void main()
       {                  
              register int i,j;
              int k;
              char str1[N],str2[M];
              printf("enter k:");
              scanf("%d",k);
              printf("enter str1");
              scanf("%s",str1);
              printf("enter str2");
              scanf("%s",str2);
              str_cat(k,str1,str2);
       }
----------------解决方案--------------------------------------------------------
谢谢啊  我去研究下 不懂的再来问 
----------------解决方案--------------------------------------------------------
  相关解决方案