欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

strcat 函數(shù)的使用指南

 更新時間:2015年09月08日 08:51:40   投稿:hebedich  
strcat是連接字符串的函數(shù)。函數(shù)返回指針,兩個參數(shù)都是指針,第一個參數(shù)所指向的內(nèi)存的地址必須能容納兩個字符串連接后的大小。

原型        extern char *strcat(char *dest,char *src);
用法        #include <string.h>

功能        把src所指字符串添加到dest結(jié)尾處(覆蓋dest結(jié)尾處的'\0')并添加'\0'。返回指向dest的指針。

說明         src和dest所指內(nèi)存區(qū)域不可以重疊且dest必須有足夠的空間來容納src的字符串。

舉例

 char str4[] = "Hello world";
 char str5[] = "Hello World";
 cout << strcat(str4,str5) << endl;

會出錯,因為str4沒有足夠的空間

下面是我自己的一個實現(xiàn),不足之處,還望指正!?。?/p>

#include "stdafx.h"
#include <iostream>
#include <assert.h>

using namespace std;
//連接字符串
char* mystrcat(char* destStr,const char* srcStr)   //如果兩個字符串是同一個字符串呢?
{
  assert(destStr != NULL && srcStr != NULL);

  char* temp=destStr;

  while(*destStr != '\0')
  {
    ++destStr;
  }
  while(*destStr++ = *srcStr++)
    NULL;
  return temp; //為了實現(xiàn)鏈式操作,將目的地址返回
}
int _tmain(int argc, _TCHAR* argv[])
{
  char str1[25] = "Hello world";
  char str2[] = "Hello World";
  cout << mystrcat(str1,str2) << endl;
  return 0;
}


我們再來看下源函數(shù):

//=======================================================
#include "string.h"
char * __cdecl strcat ( char * dst, const char * src )
{
  char * cp = dst;     //保存dst指針
  while( *cp )
    cp++;         //查找dst字符串的末尾
  while( *cp++ = *src++ ) ; //拷貝src字符串到dst后面
  return( dst );      //返回dst字符串指針
}
//=============================================

舉例:

//=================================================
strcat()接受兩個字符串參數(shù)。將第二個字符串的一份拷貝添加到第一個字符串的結(jié)尾,從而使第一個字符串成為一個新的組合字符串,第二個字符串不改變。
#include<stdio.h>
#include<string.h>
int main(void)
{
  char str1[20];
  char str2[]="Hello word";
  
  gets(str1);   // 必須初始化
  strcat(str1,str2);
  puts(str2);
  puts(str1);
  
  getchar();
  return 0;
}

以上程序?qū)tring2字符串的拷貝到string1的結(jié)尾。第一個字符串成為一個新的組合字符串

注意: 在strcat()函數(shù)調(diào)用string1之前,string1必須初始化。

相關(guān)文章

  • C++高精度算法的使用場景詳解

    C++高精度算法的使用場景詳解

    在我們進行計算的過程中,經(jīng)常會遇到幾十位,甚至幾百位的數(shù)字的計算問題,也有可能會遇到小數(shù)點后幾十位,幾百位的情況,而我們面對這樣的情況下,long long  和 double 的數(shù)據(jù)范圍顯然是不夠使用的了。因此這時,我們就需要引入一個新的算法,叫做高精度算法
    2022-09-09
  • C++二叉樹實現(xiàn)詞頻分析功能

    C++二叉樹實現(xiàn)詞頻分析功能

    這篇文章主要為大家詳細介紹了C++二叉樹實現(xiàn)詞頻分析功能,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-12-12
  • C++中的extern “C”用法詳解

    C++中的extern “C”用法詳解

    這篇文章主要介紹了C++中的extern “C”用法詳解,簡單來說,extern “C”是C++聲明或定義C語言符號的方法,是為了與C兼容,需要的朋友可以參考下
    2015-03-03
  • 從匯編看c++中的多態(tài)詳解

    從匯編看c++中的多態(tài)詳解

    下面小編就為大家?guī)硪黄獜膮R編看c++中的多態(tài)詳解。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-06-06
  • EasyX繪制透明背景圖的方法詳解

    EasyX繪制透明背景圖的方法詳解

    這篇文章主要為大家詳細介紹了EasyX繪制透明背景圖的方法,文中的示例代碼講解詳細,對我們深入了解EasyX有一定的幫助,需要的可以參考一下
    2023-01-01
  • C++中內(nèi)存分區(qū)及其作用分析

    C++中內(nèi)存分區(qū)及其作用分析

    C++內(nèi)存分區(qū)包括棧區(qū)、堆區(qū)、全局靜態(tài)區(qū)、常量區(qū),各自負責不同的數(shù)據(jù)存儲和回收,棧區(qū)主要用于存放函數(shù)局部變量和參數(shù),堆區(qū)用于動態(tài)分配內(nèi)存,全局靜態(tài)區(qū)用于存放全局靜態(tài)變量和靜態(tài)成員變量,常量區(qū)用于存放常量和字符串常量
    2023-04-04
  • 解析C++編程中的bad_cast異常

    解析C++編程中的bad_cast異常

    這篇文章主要介紹了C++編程中的bad_cast異常,bad_cast異常通常出現(xiàn)于表達式中類型轉(zhuǎn)換錯誤時等一些場景,需要的朋友可以參考下
    2016-01-01
  • OpenCV實現(xiàn)人臉檢測功能

    OpenCV實現(xiàn)人臉檢測功能

    這篇文章主要為大家詳細介紹了OpenCV實現(xiàn)人臉檢測功能,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-02-02
  • C語言鏈表實現(xiàn)學生管理系統(tǒng)

    C語言鏈表實現(xiàn)學生管理系統(tǒng)

    這篇文章主要為大家詳細介紹了C語言鏈表實現(xiàn)學生管理系統(tǒng),文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-06-06
  • C++右值引用問題解決

    C++右值引用問題解決

    本文主要介紹了C++右值引用問題解決,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-06-06

最新評論