#include <stdioh>
#include <stringh >
int main()
{
int i = 0;
char s[80] = {""}, max[80] = {""};
printf("输入五个字符串:\n");
scanf("%s",s);
strcpy(max,s);
for(i=1; i<5; i++)
{
scanf("%s",s);
if( strcmp(max,s)<0 )
strcpy(max,s);
}
printf("最大的字符串是:%s \n",max);
return 0;
}
扩展资料:
scanf函数最主要的用法是:
scanf("输入控制符",输入参数);
功能:将从键盘输入的字符转化为“输入控制符”所规定格式的数据,然后存入以输入参数的值为地址的变量中。
用scanf()函数以%s格式读入的数据不能含有空白符时,所有空白符都被当做数据结束的标志。所以题中函数输出的值只有空格前面的部分。
如果想要输出包括空格在内的所有数据,可以使用gets()函数读入数据。gets()函数的功能是读取字符串,并存放在指定的字符数组中,遇到换行符或文件结束标志时结束读入。换行符不作为读取串的内容,读取的换行符被转换为字符串结束标志'\0'。
p复制过去,有一个目标的位置问题的。若是strcpy(s,p);即将p复制到s的首地址处,答案就是ABC。
但现在是strcpy(s+2,p);,即将p复制到s首地址再往后偏移2个字节的地方,即小写的c的位置,所以答案就是abABC。
void mystrcpy(charto,const charsrc)
{
char pt =to;
const char ps = src;
//如果 to 和 src任意一个为NULL,则什么也不做
if(src==NULL || to ==NULL) return ;
while((pt++ = ps++)!='\0')
;
}
1、strcpy 函数使用方法:
strcpy()函数是C语言中的一个复制字符串的库函数。
2、空指针检查:源指针和目的指针都有可能会出现空指针的情况,所以应该对其进行检查。
3、const 修饰:源字符串参数用const修饰,防止修改源字符串;
4、为什么要设置ret 指针以及返回ret指针的位置[3],由于目的指针dst已经在进行移动了,所以用辅助指针ret表明首指针;
扩展资料:
strcpy 函数的错误用法及反馈:
1、不检查指针的有效性,说明答题者不注重代码的健壮性。
2、(A)return new string("Invalid argument(s)");,说明答题者根本不知道返回值的用途,并且他对内存泄漏也没有警惕心。从函数中返回函数体内分配的内存是十分危险的做法,他把释放内存的义务抛给不知情的调用者,绝大多数情况下,调用者不会释放内存,这导致内存泄漏。
3、(B)return 0;,说明答题者没有掌握异常机制。调用者有可能忘记检查返回值,调用者还可能无法检查返回值(见后面的链式表达式)。妄想让返回值肩负返回正确值和异常值的双重功能,其结果往往是两种功能都失效。应该以抛出异常来代替返回值,这样可以减轻调用者的负担、使错误不会被忽略、增强程序的可维护性。
4、(A)忘记保存原始的strDest值,说明答题者逻辑思维不严密。
参考资料来源:百度百科 - strcpy
strcpy是串拷贝函数,为什么要用到这个?
是strcmp串比较函数吧?
#include<stdioh>
int getLength(char str)
{
int length=0;
while(str[length]!='\0')
{
length++;
}
return length;
}
void cpstr(chars1,chars2)
{
int length1,length2;
length1 = getLength(s1);
length2 = getLength(s2);
return length1>length21:(length1==length20:-1);
}
纯手打,望采纳
#include<iostream>
#include<asserth>
using namespace std;
charStrcpy(charstrDest,const charstrSrc) ;
void main()
{
char str1;
char str2="hello !";
int length=10;
str1=new char[length];
Strcpy(str1,str2);
cout<<str1<<endl;
delete[]str1;
}
charStrcpy(char strDest , const char strSrc)
{
assert((strDest!=NULL) && (strSrc!=NULL)); //断言判断指针不能为空
char temp = strDest;
while((strDest++ = strSrc++)!='\0'); //取每一个字逐一符赋值改变指针指,变量本身值也改变
//(先取值再赋值,循环,判断)
return temp;
}
1、strcpy函数,接受两个参数str1和str2,主要用来复制字符串的,strcpy(str1,str2)的意思就是把str2这个字符串复制给str1字符串。接下来介绍用法,准备一个c语言的程序文件,首先写入头文件和主函数:
2、接着定义两个数组a和b,下面使用strcpy函数将c数组中的字符串复制到a数组中,打印出的结果最后用printf函数输出,最后打印出两个数组的内容:
3、最后打开调试窗口,就会看到看到复制后的结果了,打印出的结果是一样的一句话:
以上就是关于编写程序,输入五个字符串,输出其中最长的字符串。要求使用指针数组实现。全部的内容,包括:编写程序,输入五个字符串,输出其中最长的字符串。要求使用指针数组实现。、一道C语言程序题。关于strcpy的、c语言 写一个模仿strcpy的程序,给s1一个字符串然后用CopyStr复制到s2里等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)