
正文
c语言中copy函数 c语言中copy函数什么时候学
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
在C语言中 字符串复制函数 strcpy怎样使用
你的这一段代码有语法错误:
if(a[j]a[min])min=j;
temp=a[i];
a[i]=a[min];
a[min]=temp;
你的意思是如果a[j]a[min]成立的话,则执行一下所有语句。但是这样写的话只能执行第一条语句:min=j;剩下的无法执行。因为if语句执行到第一个分号就会结束了。所以简单的改一下:
if(a[j]a[min])
{
min=j;
temp=a[i];
a[i]=a[min];
a[min]=temp;
}
这样就可以了。不过即使这样改了后你的代码仍然不能实现需要的功能。我给你分析下:
就是这段代码:
for (i=0;i9;i++)
{
k=i+1;
min=i;
for(j=k;j10;j++)
if(a[j]a[min])
{
min=j;
temp=a[i];
a[i]=a[min];
a[min]=temp;
}
}
你的本意是想用冒泡排序法对其进行排序。不过仔细看一下可以发现,你的冒泡法用的有错误!假设只对4个数排序:4,2,1,3;
i=0时,k=1,min=0,j=1时,因为a[1]a[0],所以a[j]a[min],满足if的条件。所以min=1,并对两数进行互换。结果为:a[0]=2,a[1]=4。j=2时,因为a[2]a[1],所以a[j]a[min]。满足if的条件。所以min=2,并对两数进行互换。结果为:a[1]=1,a[2]=4。j=3时,因为a[3]a[2],所以a[j]a[min],满足if的条件。所以min=3,并对两数进行互换。结果为:a[2]=3,a[3]=4。此时,a[0]=2,a[1]=1,a[2]=3,a[3]=4。
i=1时,k=2,min=1,j=2时,因为a[2]a[1],所以a[j]a[min],不满足if条件。j=3时,因为a[3]a[1],所以a[j]a[min],不满足if条件。此时:a[0]=2,a[1]=1,a[2]=3,a[3]=4。
i=2时,k=3,min=2,j=3时,因为a[3]a[2],所以a[j]a[min],不满足if条件。此时:a[0]=2,a[1]=1,a[2]=3,a[3]=4。
有此可见,这段代码并不能实现对这四个数从小到大的排序。其实冒泡排序很简单的,我建议你看一下它的源代码。我给你简化一下:
#include stdio.h
void main()
{
int a[10],i,j,k,temp,min;
printf ("Enter 10 numbers:15 -24 10 43 -12 52 -61 33 -23 8 \n");
for (i=0;i10;i++)
scanf ("%d",a[i]);
for (i=0;i9;i++)//选择排序法
{
for(j=i+1;j10;j++)
if(a[j]a[i])
{
temp=a[j];
a[j]=a[i];
a[i]=temp;
}
}
/*for(i=1;i10;i++)//冒泡排序法
for(j=0;j10-i;j++)
if(a[j]a[j+1])
{
temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
}*/
printf("the sored numbers:\n");
for (i=0;i10;i++)
printf ("%d,",a[i]);
}
你可以选择冒泡排序和选择排序,两个方法都差不多。
对于strcpy()这个字符串函数用起来简单。写段简单的代码:
#include stdio.h
#includestring.h
main()
{
char str1[100],str2[100];
printf("input a string:");
gets(str1);
strcpy(str2,str1);
puts(str2);
}
记得加上头文件#includestring.h就可以了。
希望可以帮到你啊,呵呵
相关问答
Q1: c语言中的strcpy什么意思,简单点解释
strcpy是一个C语言c语言中copy函数的标准库函数c语言中copy函数,是string copy(字符串复制)的缩写。strcpy函数的作用是把含有'\0'结束符的字符串复制到另一个地址空间c语言中copy函数,返回值的类型为char*。
扩展资料c语言中copy函数:
C语言中c语言中copy函数,strcpy 函数不对数组边界进行检查,因而在使用 strcpy 函数时,应注意以下两点:
一、strcpy函数的缓冲区溢出问题
C 库函数 char *strcpy(char *dest, const char *src) 把 src 所指向的字符串复制到 dest。需要注意的是如果目标数组 dest 不够大,而源字符串的长度又太长,可能会造成缓冲溢出的情况。
二、strcpy函数的安全机制
在编写 strcpy 函数时,首先尽量使目的缓冲区长度足够长,另外要检测目的缓冲区和源缓冲区。如果目的缓冲区或源缓冲区是空,就要在异常处理中结束程序。如果源字符串比目的缓冲区长度不长,也要在异常处理中结束程序,以防止出现溢出情况。
参考资料:百度百科-strcpy
Q2: 自定义c语言字符串拷贝函数strcpy
/*
原 串 : Windows Application
目标串 : Windows Application
请按任意键继续. . .
*/
#include stdio.h
#include stdlib.h
char *strcopy(char ds[], char ss[]) {
int i = 0;
while(ds[i] = ss[i]) ++i;
return ds;
}
int main() {
char s[] = "Windows Application";
char d[20];
printf("原 串 : %s\n",s);
printf("目标串 : %s\n",strcopy(d,s));
system("pause");
return 0;
}
Q3: c语言中的strcpy是什么意思?
c语言中strcpy是一个C语言的标准库函数,是string copy(字符串复制)的缩写。strcpy函数的作用是把含有\0结束符的字符串复制到另一个地址空间,返回值的类型为char*。
C语言是一门面向过程的计算机编程语言,与C++、Java等面向对象编程语言有所不同。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、仅产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。C语言描述问题比汇编语言迅速、工作量小、可读性好、易于调试、修改和移植,而代码质量与汇编语言相当。C语言一般只比汇编语言代码生成的目标程序效率低10%至20%。因此,C语言可以编写系统软件。
当前阶段,在编程领域中,C语言的运用非常之多,它兼顾了高级语言和汇编语言的优点,相较于其它编程语言具有较大优势。计算机系统设计以及应用程序编写是C语言应用的两大领域。同时,C语言的普适较强,在许多计算机操作系统中都能够得到适用,且效率显著。
c语言中copy函数的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于c语言中copy函数什么时候学、c语言中copy函数的信息别忘了在本站进行查找喔。







