×

c语言strcat

c语言strcat(c语言strcat)

admin admin 发表于2023-05-24 07:40:06 浏览43 评论0

抢沙发发表评论

本文目录

c语言strcat


原型:char *strcat(char *dest,char *src);

用法:#include 《string.h》

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

说明:src和dest所指内存区域不可以重叠且dest必须有足够的空间来容纳src的字符串。返回指向dest的指针。
当然是遇到字符串结束符’\0’

c语言之strcat()


strcat(t,p)这样写是不对的,t是字符型变量,而strcat的参数要求是字符指针,可以像下面这样写
char *t = new char;
strcpy(t,“hello “);
char *p= “word!“;
strcat(t,p);
printf(“%s\n“,t);
delete t;
输出hello Word!

C语言中strcat是干什么用的,他是什么呢


strcat 语法: #include 《string.h》 char *strcat( char *str1, const char *str2 );功能:函数将字符串str2 连接到str1的末端,并返回指针str1. 例如: printf( “Enter your name: “ ); scanf( “%s“, name ); title = strcat( name, “ the Great“ ); printf( “Hello, %s\n“, title ); 不明白再追问

关于c语言中strcat函数的问题


总的来说,关于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分配的内存在堆上,是用户自己管理的内存区域,也是可读可写的区域。