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

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

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

原型        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;

會(huì)出錯(cuò),因?yàn)閟tr4沒有足夠的空間

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

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

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

  char* temp=destStr;

  while(*destStr != '\0')
  {
    ++destStr;
  }
  while(*destStr++ = *srcStr++)
    NULL;
  return temp; //為了實(shí)現(xiàn)鏈?zhǔ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()接受兩個(gè)字符串參數(shù)。將第二個(gè)字符串的一份拷貝添加到第一個(gè)字符串的結(jié)尾,從而使第一個(gè)字符串成為一個(gè)新的組合字符串,第二個(gè)字符串不改變。
#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é)尾。第一個(gè)字符串成為一個(gè)新的組合字符串

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

相關(guān)文章

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

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

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

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

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

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

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

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

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

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

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

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

    C++內(nèi)存分區(qū)包括棧區(qū)、堆區(qū)、全局靜態(tài)區(qū)、常量區(qū),各自負(fù)責(zé)不同的數(shù)據(jù)存儲(chǔ)和回收,棧區(qū)主要用于存放函數(shù)局部變量和參數(shù),堆區(qū)用于動(dòng)態(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)于表達(dá)式中類型轉(zhuǎn)換錯(cuò)誤時(shí)等一些場景,需要的朋友可以參考下
    2016-01-01
  • OpenCV實(shí)現(xiàn)人臉檢測功能

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

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

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

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

    C++右值引用問題解決

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

最新評(píng)論