• ytu 1052: 写一函数,将两个字符串连接(水题,指针练习)


    1052: 写一函数,将两个字符串连接

    Time Limit: 1 Sec  Memory Limit: 128 MB
    Submit: 343  Solved: 210
    [Submit][Status][Web Board]

    Description

    写一函数,将两个字符串连接

    Input

    两行字符串

    Output

    链接后的字符串

    Sample Input

    123 abc

    Sample Output

    123abc

    HINT

     

    Source

     
      水题。
      做这道题正好练练指针
      题意是用一个函数连接两个字符串。问题在于函数的返回值的处理,如果我想获取一个指向字符数组的指针怎么做?如果我只想获取一个指向字符的指针呢?这两种方法都可以做出这道题。
      2种做法
      函数返回值都是 char *。
      第一种做法是获取一个指向字符变量的指针,这种指针只指向一个字符变量,然后依次输出知道遇到''。
     1 #include <iostream>
     2 
     3 using namespace std;
     4 
     5 char* mystrcat(char a[],char b[])
     6 {
     7     char c[1000];
     8     int i,j;
     9     for(i=0;a[i];i++)
    10         c[i] = a[i];
    11     for(j=0;b[j];j++)
    12         c[i++] = b[j];
    13     c[i] = '';
    14     return c;
    15 }
    16 int main()
    17 {
    18     char a[1000],b[1000];
    19     while(cin>>a>>b){
    20         char *c;
    21         c = mystrcat(a,b);
    22         cout<<c<<endl;
    23     }
    24     return 0;
    25 }

      

      第二种做法,获得一个指向字符数组的指针,指针指向内存中一整块区域。main函数中需要对这个返回值进行强制转换,转换成(char(*)[1000])这种形式,假定使这个指针变量指向一整块内存。

     1 #include <iostream>
     2 
     3 using namespace std;
     4 
     5 char* mystrcat(char a[],char b[])   //连接函数
     6 {
     7     char c[1000];
     8     int i,j;
     9     for(i=0;a[i];i++)
    10         c[i] = a[i];
    11     for(j=0;b[j];j++)
    12         c[i++] = b[j];
    13     c[i] = '';
    14     return c;
    15 }
    16 int main()
    17 {
    18     char a[1000],b[1000];
    19     while(cin>>a>>b){
    20         char (*c)[1000];    //定义一个指向字符数组的指针
    21         c = (char(*)[1000])mystrcat(a,b);   //进行强制转换
    22         cout<<*c<<endl;
    23     }
    24     return 0;
    25 }

    Freecode : www.cnblogs.com/yym2013

  • 相关阅读:
    静态主席树
    uva 11107 Life Forms
    codeforce 605B. Lazy Student
    codeforce 606B Testing Robots
    codeforce 606C
    codeforce 606A
    uva 11019 Matrix Matcher
    uva 11468 Substring
    uvalive 4670 Dominating Patterns
    codeforce 603B
  • 原文地址:https://www.cnblogs.com/yym2013/p/3567689.html
Copyright © 2020-2023  润新知