zl程序教程

您现在的位置是:首页 >  其他

当前栏目

合并字符串的几个小程序

程序 字符串 合并 几个
2023-09-27 14:26:37 时间
某天被人问到关于合并两个字符串的小程序,没看明白人家的代码错在哪,只是觉得别扭,所以自己写了下。还发现了一些挺有意思的东西。做成了几个完整的小程序。 #includevoid main()     char s1[100],s2[100];     i...

某天被人问到关于合并两个字符串的小程序,没看明白人家的代码错在哪,只是觉得别扭,所以自己写了下。还发现了一些挺有意思的东西。做成了几个完整的小程序。

#include stdio.h
void main()

{

    char s1[100],s2[100];

    int i,j;
    gets(s1);
    gets(s2);
    i=0;
    while(s1[i])i++;
     j=0;
    while(s2[j])
    {
        s1[i++]=s2[j++];
    }
    s1[i]=/0;
    puts(s1);
}

程序1:这个程序来源于网上,属于比较简练,特别是gets()和puts()的使用,属于比较简练。

 #include stdio.h

 char * connection(char s3[],char s4[],char s_temp[])
{
 
 int i,j;
 i=0;
 while(s3[i])
 {
  s_temp[i]=s3[i];
  i++;
 }
 j=0;
 while(s4[j])
 {
  s_temp[i]=s4[j];
  i++;
  j++;
 }

 s_temp[i]=/0;

 
    return s_temp;
}


void main()
{
 char s1[100],s2[100],s_tempt[100];
 printf("input the element of s1:/n");
 scanf("%s",s1);
 printf("input the element of s2:/n");
 scanf("%s",s2);
   

 

    char * s5=connection(s1,s2,s_tempt);


 puts(s5);
 puts(s1);
 puts(s2);


}

程序2:这里把合并字符串这个功能抽取出来,做成一个单独的函数。在调这个程序的时候,也碰到了几个比较有意思的问题。数组名就是个地址,也可以说是个指针,所以如果在connection函数中对数组进行操作,是会改变初始数组的。所以在这里,使用了第三个全局变量,是为了保证原有的字符串内容不被改变。

#include stdio.h

void connection(char s3[],char s4[],char s_temp[])
{
 
 int i,j;
 i=0;
 while(s3[i])
 {
  s_temp[i]=s3[i];
  i++;
 }
 j=0;
 while(s4[j])
 {
  s_temp[i]=s4[j];
  i++;
  j++;
 }

 s_temp[i]=/0;

 

}


void main()
{
 char s1[100],s2[100],s_tempt[100];
 printf("input the element of s1:/n");
 scanf("%s",s1);
 printf("input the element of s2:/n");
 scanf("%s",s2);
   

 

    connection(s1,s2,s_tempt);

 puts(s_tempt);
 puts(s1);
 puts(s2);


}

程序3:这个程序没有使用函数返回值,而是直接通过数组名是地址的原理,在connection函数对数组进行操作后,直接进行访问。因为操作后的数组也是全局变量,所以函数不用返回值,就可以直接访问。

*#include stdio.h

void connection(char s3[],char s4[],char * temp,char s_temp[])
{
 
 int i,j;
 i=0;
 while(s3[i])
 {
  s_temp[i]=s3[i];
  i++;
 }
 j=0;
 while(s4[j])
 {
  s_temp[i]=s4[j];
  i++;
  j++;
 }

 s_temp[i]=/0;

 
    temp=s_temp;
}


void main()
{
 char s1[100],s2[100],s_tempt[100];
 char * p_temp;
 printf("input the element of s1:/n");
 scanf("%s",s1);
 printf("input the element of s2:/n");
 scanf("%s",s2);
   

 

   connection(s1,s2,p_temp,s_tempt);
    char * s5=p_temp;


 puts(s5);
 puts(s1);
 puts(s2);


}

程序4:这里的四个参数,是完全没有必要的。之所以要这么做,是要测试一下全局变量和局部变量的差别。四个参数里面前两个是要合并的字符串,第三个是指针的引用,第四个是全局变量的一个数组。connection函数将计算结果如果放在局部变量里,再赋给指针的引用的话,结果将是乱码,而赋给全局变量的话,最后的结果是正常的。这其实是体现了一个connection函数中的局部变量具有暂时性。

 

PS:虽然这个小程序比较简单,但是如果仔细的去想的话,还是能体现出很多问题的。


编写一个程序,如果名为Exercise12_15.txt的文件不存在,则创建该文件。使用文本I/O将随机产生的100个整数写入文件,文件中的整数由空格分开。从文件中读回数据并以升序显示数据。 编写一个程序,如果名为Exercise12_15.txt的文件不存在,则创建该文件。使用文本I/O将随机产生的100个整数写入文件,文件中的整数由空格分开。从文件中读回数据并以升序显示数据。
如何通过PHP查找给定字符串中的第一个非重复字符 新的一周又开始啦~大家应该都知道关于PHP中字符串的操作是程序设计中比较关键也是最基础的部分,那么在后面的文章中会陆续给大家介绍关于字符串的基础操作,相信总有你能掌握到的技巧~ 那么本文的主题则是“编写一个PHP程序来查找给定字符串中的第一个非重复字符”。 对于非重复字符,应该不必过多解释,比如字符串“adicvdda”,肉眼可见第一个非重复字符就是i,因为字符a和d都是重复的。 下面我们就给大家介绍怎么通过PHP来实现这个操作。
方法很多,可以自己写实现也可以使用String或StringBuffer/StringBuilder中的方法。有一道很常见的面试题是用递归实现字符串反转,代码如下所示: public static String reverse(String or...
在字符串S1中删除字符串S2中所包含的字符【转】 转自:http://www.cnblogs.com/tolimit/p/4202959.html /************************************************************************* File Name: test.
snsn1984 多年研发和团队管理经验,熟悉LLVM、GPU等技术领域,具备公司层面技术管理能力。