#include<stdio.h>
#include<string.h>
void main()
{
char string[20];
char str[3][20];
int i;
for (i = 0; i < 3; i++)
{
gets(str[i]);
if (strcmp(str[0], str[1]) > 0)//如果字符串1>字符串2
strcpy_s(string,strlen(str[0])+1,str[0]);//把字符串1复制到字符数组string中去
else
strcpy_s(string, strlen(str[1]) + 1, str[1]);//否则将字符串2复制到字符数组string中去
if (strcmp(str[2], string) > 0)//如果字符串3>字符数组string
strcpy_s(string, strlen(str[2]) + 1, str[2]);//则把字符串3复制到字符数组string中去
printf("\nthe largest string is:\n%s\n", string);
getch();
return 0;
}
}
使用strcpy_s时,规定了缓存内存,运行还是出现断点被中断了
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
2条回答 默认 最新
- lemon-l 2021-03-31 03:07关注
这。。。我看原因是你在其它的字符数组没有赋值的时候就用它们去比较了,这个时候里面的内存都是一些脏内存,会出问题的。
把这堆拿到for循环外面试试。
if (strcmp(str[0], str[1]) > 0)//如果字符串1>字符串2 strcpy_s(string,strlen(str[0])+1,str[0]);//把字符串1复制到字符数组string中去 else strcpy_s(string, strlen(str[1]) + 1, str[1]);//否则将字符串2复制到字符数组string中去 if (strcmp(str[2], string) > 0)//如果字符串3>字符数组string strcpy_s(string, strlen(str[2]) + 1, str[2]);//则把字符串3复制到字符数组string中去 printf("\nthe largest string is:\n%s\n", string);
解决 无用评论 打赏 举报
悬赏问题
- ¥20 Wpf Datarid单元格闪烁效果的实现
- ¥15 图像分割、图像边缘提取
- ¥15 sqlserver执行存储过程报错
- ¥100 nuxt、uniapp、ruoyi-vue 相关发布问题
- ¥15 浮窗和全屏应用同时存在,全屏应用输入法无法弹出
- ¥100 matlab2009 32位一直初始化
- ¥15 Expected type 'str | PathLike[str]…… bytes' instead
- ¥15 三极管电路求解,已知电阻电压和三级关放大倍数
- ¥15 ADS时域 连续相位观察方法
- ¥15 Opencv配置出错