C语言strcat函数怎么用

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言strcat函数怎么用相关的知识,希望对你有一定的参考价值。

char a[];
scanf("%s",a);
strcat(a,".txt");
FILE *fp=fopen(a,"w");
fprintf(fp,"%s",a);这样可编译,但程序运行时会显示停止运行

用法:

#include <string.h>

在C++中,则存在于<cstring>头文件中。

strcat原型:

extern char *strcat(char *dest,char *src);

功能:

把src所指字符串添加到dest结尾处(覆盖dest结尾处的'\\0')并添加'\\0'。

说明:

src和dest所指内存区域不可以重叠且dest必须有足够的空间来容纳src的字符串。

返回指向dest的指针。

strcat()函数从名称来讲就是索的含义,用途:在一个字符串的末尾增加新的字符。

函数定义如下:

char *strcat(char *dest, const char *src);

扩展资料

代码实现如下:

char *strcat(char *dest, const char *src)

char *tmp = dest;

while (*dest)

dest++;

while ((*dest++ = *src++) != '\\0');

return tmp;

实现原理: 

首先dest地址移动到最后一位,然后增加src参数值遇到’\\0’结束拷贝。 

strcat()也存在着与strcpy()类似的问题。

参考技术A

strcat()(用于拼接字符串)函数接受两个字符串作为参数。该函数把第2个字符串的备份附加在第1个字符串末尾,并把拼接后形成的新字符串作为第1个字符串,第二个字符串不变。

strcat()函数的类型是char *(即,指向char的指针)。strcat()函数返回第一个参数,即拼接第2个字符串后的第1个字符串的地址。

下面的代码演示strcat()的用法:

参考技术B

strcat()是追加字符串的函数。

strcat(char[] a,char []b)即将第二个字符串追加到第一个字符串末尾,第二个字符串值不变,第一个变长。

你的理解是对的 但是使用有误!追加时需要保证第一个字符串在加上第二个之后依旧不能溢出。在此题中,你的a[]字符串长度在追加上".txt"之后,会溢出,建议在定义a的时候写上char a[100]保证不溢出。

char a[100];
scanf("%s",a);
strcat(a,".txt");

本回答被提问者采纳
参考技术C 字符串连接函数,函数返回指针,两个参数都是指针.第一个参数所指向的内存的地址必须能容纳两个字符串连接后的大小.
#include <stdio.h>
#include <string.h>//这一句一定要加,包含了strcat的源代码
main()

char s1[]="hello",s2[]="programs";
strcat(s1,s2);
printf("%s\n",s1);//输出 helloprograms

是字符串连接函数.
原型:extern char *strcat(char *dest,char *src);

用法:#include <string.h>

功能:把src所指字符串添加到dest结尾处(覆盖dest结尾处的'\0')并添加'\0'。

说明:src和dest所指内存区域不可以重叠且dest必须有足够的空间来容纳src的字符串。
strcat()是追加字符串的函数。
strcat(char[] a,char []b)即将第二个字符串追加到第一个字符串末尾,第二个字符串值不变,第一个变长。
返回指向dest的指针。
strcat的用法:strcat(字符串1,字符串2)
strcat是一个函数.是字符串连接的意思. 起作用是连接两个字符数组中的字符串.把字符串2接到字符串1的后面.结果放在字符串1中.这个函数调用后得到一个函数值:字符串1的地址.如:
char strl[6]="people";
char strl[5]="human";
printf("%s",strcat(strl1,strl2));
则输出:
peoplehuman
参考技术D

    strcat用于将两个char类型链接的函数extern char strcatchar dest char srcdest  目标数组指针src源字符串指针返回指向dest的指针,

    src所指字符串添加到dest结尾处(覆盖dest结尾处的'\\0')并添加'\\0'。

    src和dest所指内存区域不可以重叠且dest必须有足够的空间来容纳src的字符串

    #include <string.h>#include <stdio.h>#include <string.h>#include <stdlib.h>main()
      char d[20] = "GoldenGlobal"  char* s = "View";
    system("cls");
    strcat(d,s);
    printf("%s",d);
    getchar();
    return 0;


    GoldenGlobalView

零基础学C语言带你解析字符串连接函数:strcat_s 函数

目录

一.strcat_s 函数简介

二.strcat_s 函数原理

三.strcat_s 函数实战


一.strcat_s 函数简介

strcat_s函数和strcat函数一样,主要用于字符串拼接;

strcat_s是系统的安全函数,微软在2005后建议用一系统所谓安全的函数,这中间就有strcat_s取代了strcat,原来strcat函数,没有方法来保证有效的缓冲区尺寸,所以它只能假定缓冲足够大来容纳要拷贝的字符串,容易产生程序崩溃。而strcat_s函数能很好的规避这个问题,strcat_s函数语法如下:

/*
*描述:此类函数是用于对字符串进行拼接, 将两个字符串连接再一起
*
*参数:
*   [in] strSource:需要追加的字符串
*   [in] numberOfElements:拼接后的字符串大小(并非目标字符串大小也并非原始字符串大小)
*   [out] strDestination:目标字符串
*
*返回值:errno_t是微软新定义的一种类型,这种类型是一种整型,
*       代表错误代码,若果是0 则代表没有错误,如果是其他的值 ,则会抛出一个值;
*/
//头文件:string.h
errno_t strcat_s(char *strDestination , size_t numberOfElements , const char *strSource );

1.strcat_s函数把strSource所指向的字符串追加到strDestination所指向的字符串的结尾,所以必须要保证strDestination有足够的内存空间来容纳strSource和strDestination两个字符串,否则会导致溢出错误。

strcat_s函数原理:dst内存空间大小 = 目标字符串长度 + 原始字符串场地 + ‘\\0’;

2.strDestination末尾的\\0会被覆盖,strSource末尾的\\0会一起被复制过去,最终的字符串只有一个\\0;

二.strcat_s 函数原理

strcat_s函数原理:dst内存空间大小 = 目标字符串长度 + 原始字符串场地 + ‘\\0’;

获取内存空间大小使用sizeof函数(获取内存空间大小);获取字符串长度使用strlen函数(查字符串长度)

三.strcat_s 函数实战

​​#include "stdafx.h"
#include<stdlib.h>
#include<stdio.h>
#include<string.h>
#include "windows.h"
​
//error C4996: 'strcat': This function or variable may be unsafe. Consider using strcat_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
#pragma warning( disable : 4996)
​
void main()

    char src[1024] =  "C/C++教程-strcat_s函数" ;
    char dst[1024] =  "www.codersrc.com" ;
    //注意:strcat_s第二个参数的计算,该参数是拼接后的字符串大小,并非原字符串大小或者目标字符串大小
    int len = strlen(src) + strlen(dst) + 1;
    printf("strcat_s之前 dst:%s\\n", dst); //
    strcat_s(dst, len, src);
    printf("strcat_s之后 dst:%s\\n", dst);//
    system("pause");

输出结果:
strcat_s之前 dst:www.codersrc.com
strcat_s之后 dst:www.codersrc.comC/C++教程-strcat_s函数
请按任意键继续. . .​

注意:strcat_s第二个参数的计算,该参数是拼接后的字符串大小,并非原字符串大小或者目标字符串大小;

希望对于初学者的你有帮助!

另外的话为了帮助大家,轻松,高效学习C语言/C++,我给大家分享我收集的资源,从最零基础开始的教程到C语言项目案例,帮助大家在学习C语言的道路上披荆斩棘!

 整理分享(多年学习的源码、项目实战视频、项目笔记,基础入门教程)最重要的是你可以在群里面交流提问编程问题哦!(↓↓↓↓↓)

以上是关于C语言strcat函数怎么用的主要内容,如果未能解决你的问题,请参考以下文章

用c语言如何连接两个中文字符串?

c语言 自定义函数怎么用啊

c语言中fread函数怎么用

c语言中strlen()怎么用

c语言怎么将两个正整数连接

c语言中fread函数怎么用