c语言strcat函数的用法,strcat用法

1,strcat用法没有引入头文件,修改如下#include <string.h>#include <stdio.h>void main(){ char a[30]={"i am"}; char b[]={"student"}; printf("%s", strcat(a,b)); printf("\n");}
2,C语言 strcat函数的用法一问 求大神倾囊相助不能 你看看这个函数原型返回的是连接后s1的头地址而 不能用等号把这个地址赋值给s3而这样是可以的是啊 , 连接的话是自动把后面的字符串连接在第一个字符串后面并且存放在第一个字符串数组中 。字符串是不能简单地用赋值符号来连接的 。S3的类型是 char* const类型, 不能对S3直接赋值, 应该用strcpy()函数, strcpy(S3,strcat(S1,S2));楼主你那个strcat是自己定义的,还是库函数的,如果是库函数的extern char *strcat(char *dest,char *src);函数返回的是指向dest的指针类型,而你的S3是个数组名,不是改变所以正确的是char *s3;s3 = strcat(s1, s2);return s3;
3,C语言中strcpy和strcat函数的运用求详解谢谢别费神了,错误代码 。虽然没有语法错误,但会产生运行时错误,因为strcat(p1+2,p2+1)试图把字符串p2+1连接到常字符串p1+2的后面——这相当于要让常数7=5这种操作,怎么可以?str+2 = str[2],利用strcpy()将strcat()产生的cdBCD复制到xy后边 。#include<stdio.h>char *fun1(char *s,char *t) char *s1=s; while(*s)s++; while(*t)*s++=*t++; *s=0; return s1;}void main() char s[100],t[100]; printf("输入字符串:"); gets(s); printf("输入字符串:"); gets(t); printf("%s\n",fun1(s,t));}如果没报错,应该是:xyabBCD但这样写可能会导致内存乱strcat(p1+2,p2+1)此句执行后 p1为:abBCD,已经超出了 p1 分配的内存长度答案:Dp1+2 = "cd"p2+1="BCD"strcat(p1+2, p2+1)====>p1+2 = "cdBCD"str+2 = "z"strcpy(str+2,strcat(p1+2,p2+1)) ====> str + 2 = "cdBCD"即:str = "xycdBCD"【c语言strcat函数的用法,strcat用法】
4,strcat函数的使用你好,可以实现的 。如一楼所说,b必须有足够的空间长度 。测试程序如下:void fun(char a[3][4], char *b) int i; for(i=0;i<3;i++)strcat(b,a[i]);// printf("%s",b);}main() char p1[20]=""; char *p = p1; char a[3][4]= fun(a, p); printf("%s\n",p);}可以实现 , 前提是b所指的数组是一个空字符串,并且有足够的空间长度char*只是个指针,没赋值的话其值不确定(全局变量是0,也属于不可写内存) , 所以strcat相当于在操作一块非法内存,当然会出错,有些时候不出错只是运气好而已既然都写出来了,编译运行下就知道行不行了 。只要 a[i]是一个字符串数组, 我认为是可以的 。class Stringchar* m_Data;public:friend String& operator+(const String& left, const String& right)delete []m_Data;m_Data = http://www.lisdn.com/gkrj/shwd/new char[left.length() + right.length() + 1];strcat(m_Data, left.m_Data);strcat(m_Data, right.m_Data);return *this;}inline size_t length() const }; 如果对您有帮助,请记得采纳为满意答案,谢谢!祝您生活愉快!5,C语言strcpy与strcat的用法strcpy的功能是将字符串2复制到字符数组1中去(包括字符串结尾符/0) 。strcpy的第一个参数必须是一个字符数组变量,第二个参数可以是一个包含字符串的字符数组变量 , 也可以是一个字符串常量 。例如,下面的程序将输入的字符串复制给str1.char str1[20],str2[20];scanf("%s",str2);strcpy(str1,str2);strcat的功能是将字符串2连接到字符数组1的后面(包括结尾符\0) 。其中,字符串2没有变,而字符数组1中的字符将增加了 。例如:char str1[20]="12345",str2[20]="6789";strcat (str1,str2);printf("%s",str1);//将输出123456789strcpy()是字符串复制函数 。连字符串的结束标志\0一同复制 。对于strcpy(a+1,b+2);中的b+2则是数组里的“h\0”的首地址 。a+1则是数组里的“bcde”的首地址 。即此函数的意义是:把“h\0”复制到“bcde”的位置 。字符串遇到\0结束即结果是:ah 。对于strcat(s[0],s[1]);中的二为数组可以看成是多个一维数组组成的 。所以s[0]代表的是“a”的首地址,s[1]代表的是“good”的首地址 。这是字符串连接函数 。即把good放到了a的后面 。结果是:agood 。strcpy是字符串复制,原型是 char *strcpy(char *dst,char *src)函数把src的字符串内容包括字符串结束符一起复制到dst指向的空间 。strcpy(a+1,b+2)这句是把b+2开始的字符串 , 即"h"复制到a+1开始的位置操作结束后a数组内容变为 "ah\0de"再打印a数组就显示ahstrcat是字符串拼接函数,原型是char *strcat(char *dst,char *src)函数把src的内容包括字符串结束符接到dst后面 , 拼接时会覆盖dst的字符串结束符strcat(s[0],s[1])这个操作的结果是s[0][10]="agood\0"打印s[0]显示agood这是c语言里面复制字符串的库函数, 函数声明包括在专门处理字符串的头文件中: char * strcpy( char * dst, const char * src ); 这个函数把字符串src复制到一分配好的字符串空间dst中,复制的时候包括标志字符串结尾的空字符一起复制 。操作成功,返回dst,否则返回null. 楼主,你要注意,你的第二个字符串src的长度+1(+1是因为字符串以空子符结束)不能超过你为dst开辟的空间的大小,否则src里的空字符无法复制到dst里面,你的dst就成了字符数组 , 不是字符串了,那样如果你后面有一条printf或者puts语句什么的,要打印出dst的,那就会由于没有空字符标志字符串的结束而越界了 。1)stcpy(a+1,b+2)是复制函数,就是将地址(b+2)后的字符串"h\0"复制到地址(a+1),之后a[10]="ah" 。2)strcat(s[0],s[1])是连接函数,就是将地址为s[1]字符串"good",连接到地址为s[0]字符串"a"后,之后首地址为s[0]的字符串s[0][10]="agood" 。以上结果已验证 。3) char s[][10]={"a","good",world"};中word少一个引号“。

    推荐阅读