关于c语言中字符串的复制

比如
char str[20]="123456",str2[20]="";
我想把str中的数据复制到str2中,难道只能for (i=0,i<=20;i++) str2[i]=str[i];
这样吗?我想直接str2=str提示不允许啊。。在pascal里我知道是可以的,请问c里有什么简便实现?(尤其是不知道str的长度的时候) 谢谢!

标准C语言中有对字符串的支持啊,字符串的复制可以用函数 strcpy()。
原型:char *strcpy(char *dest, char *src);   
功能:把src所指由'\0'结束的字符串复制到dest所指的数组中。   
说明:src和dest所指内存区域不可以重叠且dest必须有足够的空间来容纳src的字符串。   
返回指向dest的指针。
如果不知道str长度,可以先测试下其长度,给要复制的字符串一个长度参考
温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2018-02-27
先#include <cstring>
strcpy(str2,str1) ;

strcpy专门复制字符串追问

为什么#include中cstring 不用加.h?

追答

二者基本等价
string.h=cstring

还有注意cstring全是小写,不能写成CString

本回答被提问者和网友采纳
第2个回答  2011-08-30
可以用 strcpy 用法是 strcpy(str2, str) 这是字符串拷贝的 就是把str里面的东西拷贝到str2里
第3个回答  2020-12-29

C语言的简单字符串终于学习完了,功能是复制打印输出字符串

相似回答