急,在线等C语言调试及编写程序,初级

来源:百度知道 编辑:UC知道 时间:2024/05/29 01:25:25
1.【调试程序】:输入5个字符串,输出其中长度最长的字符串
要求:这里是需要修改代码,不是自己从头到尾对代码的编写
程序代码如下:
#include<stdio.h>
#include<string.h>
int main()
{
int i;
char str[80],max[80];

printf("Input 5 strings:\n");
scanf("%s",str);
max=str;
for(i=1;i<5;i++)
{
scanf("%s",str);
if(max<str)
max=str;
}
printf("Max is:%s \n",max);

return 0;

}

2.【编写程序】:字符复制。输入一个字符串t和一个正整数n,将字符串s中从第n个字符开始的全部字符复制到字符串s中,再输出字符串s。
要求:用字符指针定义并实现函数strscpy(s,t,n),它的功能是将字符串t中从第n个字符开始的全部字符复制到字符串s中。

如:输入t:How are you!
n:5
输出s:are you!
第二题“将字符串s中从第n个字符开始”改为“将字符串t中从第n个字符开始”,抱歉啊

1. 第一题,代码中存在关于字符串处理的问题,修改如下:
#include<stdio.h>
#include<string.h>
int main()
{
int i;
char str[80];
char max[80];

printf("Input 5 strings:\n");
scanf("%s",str);
strcpy(max,str);
for(i=1;i<5;i++)
{
scanf("%s",str);
if(strlen(max)<strlen(str))
strcpy(max,str);
}
printf("Max is:%s \n",max);

return 0;

}

第二题:
char* strscpy(const char* s, char* t, int n)
{
char* pstr = NULL;
pstr = s + n;
strcpy(t, pstr);
return t;
}

第一个,根本就不能调试,思路就是错的,max是常量,就不可以操作,,,要想操作,得另外申请指针。申请指针后,你的比较语句也不是比较长度的>>>>
这修改起来,需要大幅度的修改啊。。。不是简单的修改