#include <stdio.h>
#include <ctype.h>
#include <stdlib.h>
int main(){
char str1[]="china ";
char str2[]="is good\n";
int *p=strcat(str1,str2);
//puts(str3);
system("PAUSE");
return 0;
}
//我要是理解 把strcat返回值 赋值到char[] 是因为char[] 的变量名其实就是第一个字符的地址,然后 strcat返回的也是地址. 这样对吗?
如上代码我想用*p 给数组弄出来 能办到吗?为什么?
#include
#include
#include
int main(){
char str1[]="china ";
char str2[]="is good\n";
char *p=strcat(str1,str2);
while(*p!='\0'){
putchar(*(p++));
}
system("PAUSE");
return 0;
}
实验证明,可以办到
帮我分析下原因好吗?
因为char * strcat ( char * destination, const char * source );的返回值为destination。所以你这样做是对的。注意strcat要求目的字符串长度足够。
参考资料:http://www.cplusplus.com/reference/clibrary/cstring/strcat/
请教:linuxcstrcat拼接多次字符串就崩溃?c语言专家能指
Linux环境下c语言中的cstrcat函数拼接多次字符串时出现崩溃现象,原因可能有二。首先,变量未在函数的开头定义,导致在某些系统如Linux中可能出现segmentaion fault错误。其次,strcat函数容易引发缓冲区溢出,引发异常。为避免此类问题,现代库及操作系统提供保护机制,限制串接字符串的长度,如Visual Studio新...
C语言 strcat 问题
1.不对,这是把字符数组a中从第二个字符开始,所有字符都添加到字符串数组b的第二个串 2.也不对,strcat的两个参数必须是char*类型,使用char类型参数是错误的 另外,strcat括号里面的char多余,必须去掉 建议:如果需要将单个字符添加到指定字符串后面,建议你先使用strlen获取字符串长度,存入变量中,...
关于C语言strcat函数的问题?
s1数组在内存中占6个字节,hello字符5个还有一个结束符\\0;接下来存放的是指针s2,共4个字节。执行strcat(s1, s2);world中的w放在了原来s1字符串的\\0位置,然后剩下的orld四个字符刚好覆盖了s2内存的4个字节,所以s2的内容已经改变。这一点可以在%p输出s2中看出。64是d的ASCII码,6c是l的ASCII...
关于strcat函数
在C语言中,字符串以'\\0'(ASCII码为0)作为终止符。当你使用strcat(str1, str2)时,即使str1的末尾有多个'\\0',函数也会忽略它们,确保连接后的字符串只有一个有效的结束符。例如,如果strA是"abcd\\0",strB是"ABC\\0",strcat后的结果将是"abcdABC\\0",即使strA有额外的'\\0'。同样,如果...
C语言strcat(a,c),字符串a的长度明显不够,为啥不出错?
因为strcat函数是不安全的。虽然数组a的长度是4,但将c连接到a的后面时,不会进行越界检查,而是直接将c追加到a的后面。这样,就会占用不属于a的内存,所以运行程序时可能出现多种情况,比如:1.程序奔溃 2.表现正常 3.没奔溃,但程序出现莫名其妙的现象 这3种可能都有可能出现,出现2实属侥幸,说...
C语言 strlen()函数的问题
你这个代码是有问题的,使用strcat的时候,第一个字符串的存储空间必须足够大,能放下第一个字符串和第二个字符串加起来的长度,注意这一点。你的问题 第一个 : str1末尾的‘\\0’不会被保留 第二个问题 : 合并后str1的最末尾会有'\\0'的存在,字符串结束标志,...
请问C语言中strcat是什么意思?
在这段代码中,出现了语法错误,提示变量<strcat>未定义。这是因为在Pascal中,没有名为<strcat>的函数或变量。根据代码的结构,可能是想要使用字符串拼接函数的功能,应该使用Pascal中的StrUtils单元中的Concat函数,而不是C语言中的strcat函数。因此,将代码中的STRCAT替换为Concat函数即可,示例如下:uses...
c语言中strcat,strcpy等函数的问题
strcpy()'复制内容到一个字符串,会覆盖原字符串内容。strcat();连接函数,连接两个字符串。值被覆盖式由于strpy引起的,相应的更改代码顺序。
C语言自编strcat函数输出乱码
你要把b接到a后面。a必须大小足够容纳2个字符串。内部函数strcat,也要求大小。除非你传递的a数组是动态申请的,然后strcat里用realloc从定义大小。那样才不需要预设较大内存空间。
c语言strcat函数怎么用
C语言strcat函数的使用方法 一、函数概述 strcat函数是C语言中用于字符串拼接的函数。它可以将一个字符串拼接到另一个字符串的末尾,并返回目标的指针。二、函数原型 strcat的函数原型为:char *strcat; 其中,dest是目标字符串,src是源字符串。三、使用步骤 1. 声明字符串变量并初始化目标字符串。例...