1. C中关于字符串复制的问题
这段代码运行没出错,不代表这个实现方法没有问题,你也看到了目标串的长度比源串要小。
对于char a[]="I am happy!";这样的写法,编译器会分配一定的内存区域,考虑到存取效率,一般应该是2的n次方这样的大小,但是具体分配多少?不一定,不同的编译器可能不同。
在C里面,指针操作一直是一个高风险的存在。要知道,对于已分配空间的指针操作,编译器是无法完全检测到是否越界的,只有在运行时检测到越界了或者影响了其它变量的值,才有可能知道。
在这里长的字符数组复制给短的字符数组却没有出错,可能是长数组的长度没有超过编译器分配的空间,而且这段代码里面没有更多的变量,如果char a[]的长度没有达到覆盖 char b[]的程度,就不会表现出来。
总之,对类似这种内存复制,比较保险的做法就是在操作前给被操作的变量分配足够的空间,把出错的可能控制在自己手里,而不是丢给编译器处理,否则还是有很大的可能覆盖到其他变量。
2. c语言 将一个数组里的字符串复制到另一个数组中
比如源字符串是s,要复制到另一字符串t中,这里必须满足t能放得下s的全部元素,否则将会有危险发生。举例代码如下:
//#include "stdafx.h"//If the vc++6.0, with this line.
#include "stdio.h"
int main(void){
char *s="The quick brown fox jumps over a lazy dog. 1234567890";
char *ps=s,t[60],*pt=t;
while(*pt++=*ps++);//这就把s全部复制给t了
printf("%s\n",t);//打出来看看...
return 0;
}
3. c语言中strcpy函数干什么用的
他是字符串的复制,函数strcpy(字符数组1,字符串2)作用就是 将字符串2复制到字符数组1 中去。
例如 char str1[10]='',
str2[]={“china”}
strcpy(str1,str2);
这样str1[]数组的内容就是“china”。
(3)c语言字符串数组复制扩展阅读:
C语言库函数,常用库函数有:
1、scanf格式输入函数
2、printf格式输出函数
3、systemdos命令函数
4、sort排序
5、main主函数
6、fgets文件读取字符串函数
7、fputs文件写入字符串函数
8、fscanf文件格式读取函数
9、fprintf文件格式写入函数
10、fopen打开文件函数
11、getchar输入字符函数
12、putchar输出字符函数
13、malloc动态申请内存函数
4. C语言中如何复制数组的内容
在内存中以每4个字节的单位分配n块连续的内存(n
=
你数组元素个数)
第一块的地址就是数组名(没有"["和"]")保存的地址
5. c语言编程题!字符串复制。输入一个字符串,把它复制到一个字符数组中,并输出。
#include <stdio.h>
int main()
{
char a[100] = "