编写程序,输入五个字符串,输出其中最长的字符串。要求使用指针数组实现。

编写程序,输入五个字符串,输出其中最长的字符串。要求使用指针数组实现。,第1张

#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里等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/10107470.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-05
下一篇 2023-05-05

发表评论

登录后才能评论

评论列表(0条)

保存