- LocCloud
-
总的来说,关于strcat,第一个参数所指向的内存地址要求是可写的
那么,关于你提出的,s1 = "abc"这句话的实际作用是把常量区中"abc"的首地址赋值给s1,而常量区的内存是不允许程序修改的,因此执行strcat的时候就会失败。
而改成s1[],这是作为一个栈内数组,生存空间仅在函数生命周期内,并且在该函数生命周期中,该内存地址是可读可写的,所以改变之后可以成功。
同样,如果将你的代码修改成以下形式,也可以成功
char *s1 = (char *)malloc(6 * sizeof(char));
strcpy(s1, "abc");
strcat(s1, "def");
puts(s1);
free(s1);
这样子也是可以成功的,malloc分配的内存在堆上,是用户自己管理的内存区域,也是可读可写的区域。
- LuckySXyd
-
strcat函数第一个参数是字符串数组首地址,不能只是个指针(指向的内容可以修改)。
*s1=“abc”;s1只一个指针,指向的内容为字符串常量"abc"(无法修改);
s1[] = "abc";s1是数组首地址,虽然也是一个指针但是有存储空间的数组。两个是不一样的。
strcat是拼接字符串用的,要求s1[]的空间足够的大,你直接使用strcat(s1,s2);是很危险的。
- 苏州马小云
-
因为char *s1指向“abc”,但是“abc”是const char型,是无法修改的,所以strcat是错误的
但是s1[]会重新分配内存后s[4] a b c
所以strcat可以成功
- 里论外几
-
char *s1="abc"; 相当于s1是常量 const型 不能进行strcat
- 我不懂运营
-
* 回复内容中包含的链接未经审核,可能存在风险,暂不予完整展示!这里有说的比较详细,可以参考:http://blog.c**.net/candyliuxj/article/details/6786718
c语言中的strcat是什么意思啊?
将多个字符串拼接成一个长字符串后返回,不是吗?C书上有说明的!2023-08-04 03:09:198
strcat函数的作用是什么?
strcat函数作用是把src所指向的字符串(包括“”)复制到dest所指向的字符串后面(删除*dest原来末尾的“”)。保证*dest足够长,以容纳被复制进来的*src。*src中原有的字符不变。strcat是把两个字符串合并到一起,比如str1[30] = "Hello";str2[] = " China";strcat(str1, str2);则str1的内容就变成"Hello China"。扩展资料:在C中,函数原型存在 <string.h>头文件中。在C++中,则存在于<cstring>头文件中。把src所指向的字符串(包括“”)复制到dest所指向的字符串后面(删除*dest原来末尾的“”)。要保证*dest足够长,以容纳被复制进来的*src。*src中原有的字符不变。返回指向dest的指针。src和dest所指内存区域不可以重叠且dest必须有足够的空间来容纳src的字符串。参考资料来源:百度百科-strcat2023-08-04 03:09:531
strcat(str1,str2)的功能
具体如下。将两个字符串合为一,函数名:strcat。功能:将两个字符串合为一。说明strcat(str1,str2)把str1(包括“”)复制到str2后面(删除str2原来末尾的“”)。strcat是c语言的函数,在C++中存在于头文件中。externchar*strcat(char*dest,char*src);用法#include在C++中,则存在于头文件中。功能把src所指字符串添加到dest结尾处(复盖dest结尾处的"")并添加""。说明strcatstrcatsrc和dest所指内存区域不可以重叠且dest必须有足够的空间来容纳src的字符串。返回指向dest的指针。2023-08-04 03:10:131
C语言中strcat和strcpy的区别
strcat与strcpy作用反了2023-08-04 03:10:296
C语言strcat和strcpy的不同
不一样啊比如a和b两个字符数组cat是连接的,也就是将b的内容添加到a的后面。a的内容还保留在a的前面。而cpy是复制,也就是将b的内容覆盖掉a的内容。a的内容不能保留了。2023-08-04 03:10:494
matlab 中 strcat函数的用法
D盘下目录"D: hesisdatagamitcoordinate,yr变量所表示的值,model,yr各表示的变量,文件扩展名.org最后生成文件名为各部分的组合,如D: hesisdatagamitcoordinatexy,x.org2023-08-04 03:10:562
matlab中strcat用法,速求
连接字符串的函数。。。楼主写的命令意思是把变量名为name的字符串与数字"i"连接。。。例如若名字name="楼主";当i=3时,函数就输出 楼主3具体可以参考matlab的help文件a = "hello "b = "goodbye"strcat(a, b)ans =hellogoodbye另外提醒一下,num2str意思是把数字转为字符串2023-08-04 03:11:042
c语言中strcpy,strcat什么意思?
strcat的用法:http://baike.baidu.com/link?url=fNh_sXIr_PJjvPzolxCsrx7jB-gJmcev5B2xbnOuZMNc96lvE5blC5oi4W-IUn4H0DVHpgoA3PXe32c390XdxKstrcpy的用法:http://baike.baidu.com/link?url=LzfiNzZpb1KlgjQtNzYdpmfK0-htZK1e25OK8g8igQ8zthDKznQy7FxtySS2dY3b1VrLQieMaJpG28clV1fd0K2023-08-04 03:11:405
c++ strcat函数怎么用
原型 extern char *strcat(char *dest,char *src); 用法 #include <string.h> 功能 把src所指字符串添加到dest结尾处(覆盖dest结尾处的"")并添加""。 说明 src和dest所指内存区域不可以重叠且dest必须有足够的空间来容纳src的字符串。 返回指向dest的指针。 举例 char str4[] = "Hello world"; char str5[] = "Hello World"; cout << strcat(str4,str5) << endl;会出错,因为str4没有足够的空间下面是我自己的一个实现,不足之处,还望指正!!!复制代码代码如下:#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 != "") { ++destStr; } while(*destStr++ = *srcStr++) NULL; return temp; //为了实现链式操作,将目的地址返回}int _tmain(int argc, _TCHAR* argv[]){ char str1[25] = "Hello world"; char str2[] = "Hello World"; cout << mystrcat(str1,str2) << endl; return 0;}2023-08-04 03:11:552
C语言strcat函数怎么用
strcat用于将两个char类型链接的函数。函数原型:externchar*strcat(char*dest,char*src);参数:dest目标数组指针src源字符串指针返回值:返回指向dest的指针函数功能:把src所指字符串添加到dest结尾处(覆盖dest结尾处的"")并添加""。注意事项:src和dest所指内存区域不可以重叠且dest必须有足够的空间来容纳src的字符串。使用时额外包含#include<string.h>实例:#include<stdio.h>#include<string.h>#include<stdlib.h>main(){chard[20]="GoldenGlobal";char*s="View";system("cls");strcat(d,s);printf("%s",d);getchar();return0;}运行结果:GoldenGlobalView2023-08-04 03:12:131
在C语言中strcat函数怎么使用?它的返回值是什么?
原型extern char *strcat(char *dest,char *src);用法#include <string.h>在C++中,则存在于<cstring>头文件中。功能把src所指字符串添加到dest结尾处(覆盖dest结尾处的"")并添加""。说明src和dest所指内存区域不可以重叠且dest必须有足够的空间来容纳src的字符串。返回指向dest的指针。2023-08-04 03:12:213
如何用c语言编写strcat函数
#include<stdio.h>#include<string.h>char* mycat(char* s1,const char* s2){ char *tyr = s1; s1[strlen(s1)]=s2[strle(2)]; return tyr;}2023-08-04 03:12:281
matlab中语句strcat(pwd)是什么意思
先明白strcat函数的定义:定义strcat 即 Strings Catenate,横向连接字符串。语法 combinedStr= strcat(s1, s2, ..., sN)描述 将数组 s1,s2,...,sN 水平地连接成单个字符串,并保存于变量combinedStr中。如果任一参数是元胞数组,那么结果 combinedStr 是一个元胞数组,否则,combinedStr是一个字符数组。其实它的作用很简单就是将多个字符连接成单个字符串,关键在于这个语句中括号里面的内容,"D: hesisdatagamitcoordinate" 加了单引号的,就说明单引号里面的内容为:字符串 ,下面的"" 与".org" 相同都只是字符串而已,原样输出即可。 置于接下来的 yr 和 model 肯定是先前人为定义的变量,里面肯定储存了某些字符串信息的。那么这个语句最终实现的结果是:将“ D: hesisdatagamitcoordinateyr的值model的值.org” 存于变量filename 中看程序部能光看一句,这样这个语句事实上完成了 一个文件的创建,便于接下去程序中实现 调用路径中的文件数据 或 修改。ps:如果你学过C语言这个对你来说应该不难2023-08-04 03:12:351
strcat函数我怎么不能用?
char kk[8] = "11";char* kkl = "22";这样就行了2023-08-04 03:12:502
c++中,strcpy()和strcat(),str+2又是什么意思?
字符串复制函数strcpy函数原型:strcpy(char[],constchar[]);strcpy的作用是将第二个字符数组中的字符串复制到第一个字符数组中去,将第一个字符数组中的相应字符覆盖。例如:charstr1[10],str2[]="china";strcpy(str1,str2);执行后,str2中的5个字符"china"和""(共6个字符)复制到数组str1中。str1[10]="china";字符串连接函数strcat函数原型strcat(char[],constchar[]);strcat的作用是将第二个字符数组中的字符串连接到前面的字符串后面。例如:charstr1[30]="Peopleis";charstr2[]="china";strcat(str1,str2);执行结果Peopleischina;str+2是地址,指向str后的第二个元素,就是向右移2位2023-08-04 03:12:581
c中strcat函数出错的原因
#include <stdio.h>#include <string.h>#include <stdlib.h>#include <malloc.h>void main(){//char* cs1 = "Hello ";char* cs1 = (char*)malloc(sizeof(char)*6);*cs1 = "H";*(cs1+1) = "e";*(cs1+2) = "l";*(cs1+3) = "l";*(cs1+4) = "o"; *(cs1+5) = "";char cs2[6] = {"w","o","r","l","d",""};strcat(cs1,cs2);printf("%s ",cs1);system("pause");}strcat处理的字符串,都必须有结束标记的 后面必须带一个""还有就是*(cs1+1) 你没赋值2023-08-04 03:13:063
函数调用:strcat(strcpy(str1,str2),str3)的功能是
cC) 将串str2复制到串str1中后再将串str3连接到串str1之后2023-08-04 03:13:212
用字符指针实现函数strcat(s,t),将字符串t复制到字符串s的末端,并且返回字符串s的首地址。
有好几个问题,下面是在你的基础上修改的#include <stdio.h>char *strcat(char *f,char *t);int main(){ char a[100]="I love you !";//第一个问题,这里数组必须足够大,不然会数组越界 char b[]="do you love me ?"; char *from=a,*to=b; printf("结果是: "); printf("%s",strcat(from,to)); printf(" "); return 0;}char *strcat(char *f,char *t){ char *s=f; while(*(f++)!="")//‘"你写错了 { ; } f--;//这块你得往后移动一个元素,因为上面你已经指到最后一个元素后面了 while(*t!="")//还有就是这里,你的思路有些乱,好好理一理 { *(f++)=*(t++); } *f=""; return s;}2023-08-04 03:13:341
在c++函数strcat要怎么使用,为什么用vs2017一直报错
看报错信息啊,有很多种解决方案,按照提示使用strcat_s代替strcat关闭SDL检查。项目-属性-C/C++-常规-SDL检查-否在文件顶部加入一行:#define _CRT_SECURE_NO_WARNINGS在文件顶部加入一行:#pragma warning(disable:4996)2023-08-04 03:13:521
在C++平台编程:输入两个字符串(长度
我先做个记号 吃完饭回来做2023-08-04 03:14:004
C语言如何STRCAT不可以用
首先 定义错误,char p1 p2是不对的,这里需要char *p1 = "abc", *p2="ABC";其次 p1 和p2指向的都是常量字符串于是 执行strcat(p1,p2)这个是一个非法操作,会改变常量区p1的值。 导致程序崩溃。不考虑这些错误的话。那么先strcat, 将p2连接到p1之后,于是p1="abcABC"返回值为p1.然后执行strcpy(str+2, p1)所以str=xyabcABC输出str选C2023-08-04 03:14:101
从键盘输入两个字符串a和b,要求不用库函数strcat把字符串b连接到字符串a之后,请用c需要编程
#include <stdio.h>#include <string.h>int main(){ char a[123],b[123]; scanf("%s %s",a,b); int i,la=strlen(a),lb=strlen(b); for(i=0;i<lb;i++) //这里开始链接 a[la+i]=b[i]; a[la+i]=""; printf("%s ",a); return 0;}2023-08-04 03:14:171
C语言编程:输入2个字符串,将其连接后输出.
#include<stdio.h>char *my_strcat(char *target,const char *source) { char *original=target; while(*original != "") original++; // Find the end of the string while(*source) *original++=*source++; *original=""; return(target); } int main(){ char a[81],b[81]; gets(a); gets(b); my_strcat(a,b); printf("a+b=%s ",a); return 0;}2023-08-04 03:14:252
C语言strcat(a,c),字符串a的长度明显不够,为啥不出错?
strcat()函数执行是把字符串b连接到字符串a的后边,也就要求字符串a要足够长,能装下b,而你这样定义的字符串a和b都是字符串字面量,也叫着字符串常亮,很明显前边字符串长度是固定的4字节,不仅不够增加后边字符串长度而且还是不可修改的,所以运行一定出错,要是在linux下运行将产生一个段错误。修改可以把a定义成这个样子:char a[10] = "tom";2023-08-04 03:14:322
编一程序,将两个字符串连接起来,不要用strcat函数
voidstrcat(charstr1[],charstr2[])//必须传入串地址{inti,j;for(i=0;str1[i]!=0;i++);//走到目的串str1的结尾for(j=0;str2[j]!=0;j++,i++){str1[i]=str2[j];//i此时指向str1的最后面,j是str2的最前面//str1[i]=str2[j]当然就是把2接到1之后了。/*i++;*///这新写让人搞不清楚循环变量的状况}str1[i]=0;}2023-08-04 03:14:539
c语言strcat
你的程序乱七八糟,别人看不懂,告诉目的是干什么的!2023-08-04 03:15:593
C语言 strcat 问题
1.不对,这是把字符数组a中从第二个字符开始,所有字符都添加到字符串数组b的第二个串2.也不对,strcat的两个参数必须是char*类型,使用char类型参数是错误的另外,strcat括号里面的char多余,必须去掉建议:如果需要将单个字符添加到指定字符串后面,建议你先使用strlen获取字符串长度,存入变量中,以该变量为索引号手动添加到字符串中,并在以变量+1为索引处添加0或者""就行。或者,定义一个字符串将这个字符放进去,然后用strcat连接方法一:int n=strlen(b[1]); b[1][n]=a[1]; b[1][n+1]="";方法二:char t[2]={a[1], ""}; strcat(b[1],t);2023-08-04 03:16:061
strcat_s 和 strcat 的区别
加了_s的函数是微软定义的,称为安全函数safe,它比strcat考虑了更多的安全性,一般会多一个最大长度的参数2023-08-04 03:16:262
[c语言]求解 strcat(字符串,数组)
strcat(dest,source)是从后者复制到前者,前者必须有能装下后者的空间。会改写dest,往他后面放source数组。也就是strcat(a,b)应该是"abcarr",但是没有足够的空间了。所以你把char a[]改成char a[7]就可以了。(别忘了末尾)strcat(b,a)是可以的,就是把a接在b后面,改写b。字符串和数组本质上是一样的,只不过引号声明的字符串是不能改写的。int main(){char* a="132";a[2]="1";}这段代码会报错。如果你把引号声明的字符串你可以strcpy到b,b就可以改写了,比如char b[4];strcpy(b,"arr");这时b就可以改写了。int main(){char b[4];strcpy(b,"arr");b[2]="1";}b就变成了“ar1”。所以说字符串(“123”这种)和数组(char a[]={"1","2","3"}这种)只是个char[]和const char[]的区别,字符串和数组本质上是一样的。(说不一样的可能在说C++的string,那个是个类,有很多个方法,那个是不一样的。)如果你嫌char a[]={"1","2","3"}打那么多单引号麻烦,可以用刚才那样的strcpy函数来给a赋值。2023-08-04 03:16:331
C语言里,函数strcmp,strcat,strlen,strlwr和strupr的全称都是什么?
字符串比较,字符串连接,字符串长度,字符串转小写,字符串转大写。2023-08-04 03:16:472
C++中strcy和strcat什么意思
字符串复制函数strcpy函数原型:strcpy(char[],const char[]);strcpy的作用是将第二个字符数组中的字符串复制到第一个字符数组中去,将第一个字符数组中的相应字符覆盖。例如:char str1[10],str2[]="china";strcpy(str1,str2);执行后,str2中的5个字符"china"和""(共6个字符)复制到数组str1中。str1[10]="china";字符串连接函数strcat函数原型strcat(char[],const char[]);strcat的作用是将第二个字符数组中的字符串连接到前面的字符串后面。例如:char str1[30]="People is";char str2[]="china";strcat(str1,str2);执行结果People is china;2023-08-04 03:16:566
strcpy函数与strcat区别
1、strcat是用来连接两个字符串的,原型是char *strcat(char *dest,char *src),作用是把src所指字符串添加到dest结尾处(覆盖dest结尾处的"")并添加""。2、strcpy是用来把字符串拷贝到指定的地方的,原型是char *strcpy(char *dest,const char *src),作用是把从src地址开始且含有NULL结束符的字符串复制到以dest开始的地址空间。3、注意strcat是从dest的结尾处开始操作的,而strcpy是直接覆盖dest指向的内容。2023-08-04 03:17:111
关于C语言strcat函数的问题?
你的这是什么版本,指针还能指向字符串字面常量的吗?2023-08-04 03:17:183
c++中,strcpy()和strcat(),str+2又是什么意思?
字符串复制函数strcpy函数原型:strcpy(char[],constchar[]);strcpy的作用是将第二个字符数组中的字符串复制到第一个字符数组中去,将第一个字符数组中的相应字符覆盖。例如:charstr1[10],str2[]="china";strcpy(str1,str2);执行后,str2中的5个字符"china"和""(共6个字符)复制到数组str1中。str1[10]="china";字符串连接函数strcat函数原型strcat(char[],constchar[]);strcat的作用是将第二个字符数组中的字符串连接到前面的字符串后面。例如:charstr1[30]="Peopleis";charstr2[]="china";strcat(str1,str2);执行结果Peopleischina;str+2是地址,指向str后的第二个元素,就是向右移2位2023-08-04 03:17:323
visual studio2017怎么使用strcat,strcpy,strlwr,strupr
#include <string.h>#include <stdio.h>void main( ){char str1[40]="TEST1 STRING", str2[40]="TEST2 STRING", str3[40]="test3 string" ;strcat(str1, str2) ; /* 将 str2 接在 str1 的末尾,则 str1 的内容就变为:TEST1 STRINGTEST2 STRING */strcpy(str1, str2) ; /* 假设没有上面的 strcat 操作,则 str1 的内容就变为:TEST2 STRING */strlwr(str1) ; /* 假设没有上面的 strcat、以及 strcpy 操作,则 str1 的内容为:test1 string。strlwr( ) 功能:将 str1 数组中的字符变为小写 */strupr(str3) ; /* str3 的内容变为:TEST3 STRING。strupr( ) 功能:将 str3 数组中的字符变为大写 */}2023-08-04 03:17:401
strcat函数的作用是
strcat函数的作用是将两个char类型连接。例如:char d[20]="Golden";char s[20]="View";strcat(d,s);//打印dprintf("%s",d);输出 d 为 GoldenView (中间无空格)d和s所指内存区域不可以重叠且d必须有足够的空间来容纳s的字符串。返回指向d的指针。扩展资料在C中,函数原型存在 <string.h>头文件中。在C++中,则存在于<cstring>头文件中。把src所指向的字符串(包括“”)复制到dest所指向的字符串后面(删除*dest原来末尾的“”)。要保证*dest足够长,以容纳被复制进来的*src。*src中原有的字符不变。返回指向dest的指针。说明:src和dest所指内存区域不可以重叠且dest必须有足够的空间来容纳src的字符串。2023-08-04 03:17:591
strcat函数用法怎么举例?
C库函数char *strcat(char *dest, const char *src)把src所指向的字符串追加到dest所指向的字符串的结尾。参数:dest --指向目标数组,该数组包含了一个C字符串,且足够容纳追加后的字符串。src --指向要追加的字符串,该字符串不会覆盖目标字符串。返回值:该函数返回一个指向最终的目标字符串dest的指针。实例演示了strcat()函数的用法。#include <stdio.h>#include <string.h>int main (){char src, dest;strcpy(src, "This is source");strcpy(dest, "This is destination");strcat(dest, src);printf("最终的目标字符串:|%s|", dest);return(0);}功能把src所指向的字符串(包括“”)复制到dest所指向的字符串后面(删除*dest原来末尾的“”)。要保证*dest足够长,以容纳被复制进来的*src。*src中原有的字符不变。返回指向dest的指针。2023-08-04 03:18:131
C语言strcat函数怎么用
strcat用于将两个char类型链接的函数。函数原型:extern char *strcat(char *dest,char *src);参数:dest 目标数组指针src 源字符串指针返回值:返回指向dest的指针函数功能:把src所指字符串添加到dest结尾处(覆盖dest结尾处的"")并添加""。注意事项: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;}运行结果:GoldenGlobalView2023-08-04 03:18:307
strcat的用法
把strcat变成strcpy问题解决原因:strcat是找从那开始往后连接串。这样就可以导致一个事情发生你s3是由堆内存区分配的空间,那么这分配来的空间原始存放的数据是不确定的。我们假设前几个是由可见ASCII字符存放,然后一个接着又是一些ASCII字符举个例子:分配来的第一个内存单元是字符a 第二个是b 第三个是c 接着第四个内存单元是一个好了你用了strcat那么它就从那个也就是第四个内存单元开始连接s1串,这样连好以后变成了abcI love you, 这就出现了问题而我举的例子只是拿abc说事,你内存中肯定存放的不一定是啥东西,所以输出前端肯定是乱码而这里用strcpy就不会出问题,因为strcpy不管你前边存的有没有它就从空间中第一个地址开始写数据。2023-08-04 03:19:321
strcat的作用
strcat原型 extern char *strcat(char *dest,char *src);用法 #include <string.h>在C++中,则存在于<cstring>头文件中。功能 把src所指字符串添加到dest结尾处(覆盖dest结尾处的"")并添加""。说明 src和dest所指内存区域不可以重叠且dest必须有足够的空间来容纳src的字符串。返回指向dest的指针。举例 // strcat.c#include <syslib.h>#include <string.h>main(){char d[20]="Golden Global";char *s=" View";clrscr();strcat(d,s);printf("%s",d);getchar();return 0;}程序执行结果为:Golden Global ViewStrcat函数原型如下:char *strcat(char *strDest, const char *strSrc) //将源字符串加const,表明其为输入参数{char *address = strDest; //该语句若放在assert之后,编译出错assert((strDest != NULL) && (strSrc != NULL)); //对源地址和目的地址加非0断言while(*strDest) //是while(*strDest!="")的简化形式{ //若使用while(*strDest++),则会出错,因为循环结束后strDest还会执行一次++,那么strDeststrDest++; //将指向""的下一个位置。/所以要在循环体内++;因为要是*strDest最后指} //向该字符串的结束标志""。while(*strDest++ = *strSrc++) {NULL; //该循环条件内可以用++,} //此处可以加语句*strDest="";无必要return address; //为了实现链式操作,将目的地址返回}2023-08-04 03:19:553
strcat函数的作用是
strcat函数的作用是将两个char类型连接。例如:char d[20]="Golden";char s[20]="View";strcat(d,s);//打印dprintf("%s",d);输出 d 为 GoldenView (中间无空格)d和s所指内存区域不可以重叠且d必须有足够的空间来容纳s的字符串。返回指向d的指针。扩展资料在C中,函数原型存在 <string.h>头文件中。在C++中,则存在于<cstring>头文件中。把src所指向的字符串(包括“”)复制到dest所指向的字符串后面(删除*dest原来末尾的“”)。要保证*dest足够长,以容纳被复制进来的*src。*src中原有的字符不变。返回指向dest的指针。说明:src和dest所指内存区域不可以重叠且dest必须有足够的空间来容纳src的字符串。2023-08-04 03:20:031
c++中strcat是干嘛用的
//字符串连接函数char*strcat(char *strDestination,const char *strSource);strcat函数将字符串strSource连接到字符串strDestination,并且在strDestination字符串末尾添加NULL字符。函数结果会改变字符串strDestination,其将用来存储连接之后的字符串。函数不对内存溢出进行检查,所以要确保strDestination指向的空间足够长,以存储连接之后的字符串。如果strDestination和strSource指向的地址有重叠,函数结果未定义(不可预期)。返回值:strcat函数返回目标字符串的地址(strDestination)。不可通过返回值来判断strcat函数是否执行成功。2023-08-04 03:20:172
C语言中strcat和strcpy的区别
一、功能不同1、strcat:字符串复制。把从src地址开始且含有""结束符的字符串复制到以dest开始的地址空间。2、strcpy:把两个字符串连接起来,把src所指字符串添加到dest结尾处。二、用法不同1、strcat:char *strcpy(char* dest, const char *src)。2、strcpy:extern char *strcat(char *dest,char *src)。三、规定不同1、strcat:src和dest所指内存区域不可以重叠且dest必须有足够的空间来容纳src的字符串。返回指向dest的指针。2、strcpy:src和dest所指内存区域不可以重叠且dest必须有足够的空间来容纳src的字符串。参考资料来源:百度百科-strcpy参考资料来源:百度百科-strcat2023-08-04 03:20:241
请问你知道c 语言中str和strcat的全称吗
str的全称是string,表示字符串。strcat的全称是string catenate,表示字符串连接。2023-08-04 03:20:371
c中strcat函数出错的原因
#include <stdio.h>#include <string.h>#include <stdlib.h>#include <malloc.h>void main(){//char* cs1 = "Hello ";char* cs1 = (char*)malloc(sizeof(char)*6);*cs1 = "H";*(cs1+1) = "e";*(cs1+2) = "l";*(cs1+3) = "l";*(cs1+4) = "o"; *(cs1+5) = "";char cs2[6] = {"w","o","r","l","d",""};strcat(cs1,cs2);printf("%s ",cs1);system("pause");}strcat处理的字符串,都必须有结束标记的 后面必须带一个""还有就是*(cs1+1) 你没赋值2023-08-04 03:20:563
strcat怎么读啊?
string catenate字符串连接2023-08-04 03:21:102
C语言 strcat函数输出错位
strcat(filename[i],buffer); 用到这一句为止,buffer都没有初始化,它存储的是随机值。2023-08-04 03:21:172
关于strcpy、strcat的用法
strcpy()是字符串复制函数。连字符串的结束标志‘"一同复制。对于strcpy(a+1,b+2);中的b+2则是数组里的“h”的首地址。a+1则是数组里的“bcde”的首地址。即此函数的意义是:把“h”复制到“bcde”的位置。字符串遇到‘"结束即结果是:ah。对于strcat(s[0],s[1]);中的二为数组可以看成是多个一维数组组成的。所以s[0]代表的是“a”的首地址,s[1]代表的是“good”的首地址。这是字符串连接函数。即把good放到了a的后面。结果是:agood。2023-08-04 03:21:251
已知chars1[20]="Good",*s2="Luck!";函数strlen(strcat(s1,s2))的值是?
准确答案 92023-08-04 03:21:332
matlab 中 strcat函数的用法
D盘下目录"D: hesisdatagamitcoordinate,yr变量所表示的值,model,yr各表示的变量,文件扩展名.org最后生成文件名为各部分的组合,如D: hesisdatagamitcoordinatexy,x.org2023-08-04 03:21:412