首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >strcpy和strcmp,我哪里做错了?

strcpy和strcmp,我哪里做错了?
EN

Stack Overflow用户
提问于 2012-01-23 19:16:47
回答 5查看 2.9K关注 0票数 0

用户应该输入几个字符串,并输入空格作为字符串,当他完成。代码应该返回输入的最长和最短的单词。

strcmp总是返回-1...我做错了什么?

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#include <iostream>
#include <cstring>
using namespace std;
int main() {
    char S[100][20];
    int I = 0;
    do {
            cout << "Enter text:" << endl;
            cin.getline(S[I],100);
    } while (I < 19 && strcmp(S[I++],""));
    char Max[100], Min[100];
    strcpy(Max, S[0]);
    strcpy(Min, S[0]);
    for (int J = 1; J < I; J++) {
        if (strcmp(S[J], Max) == 1)
            strcpy(Max, S[J]);
        if (strcmp(S[J], Min) == -1)
            strcpy(Min, S[J]);
    }
    cout << "Max = " << Max << endl;
    cout << "Min = " << Min << endl;
    system("pause");
    return 0;
}
EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2012-01-23 19:48:27

所以,有几件事:

比较变量应该是小写的;比较变量的长度是错误的(应该是s[20][100]);

  • in i < 20;

  • the

  • while go直到数组中的最后一个字符串始终是空字符串(因此:s_min将始终是比较字符串,它不会告诉你哪个字符串是最长的。你应该使用strlen进行比较...

下面是工作代码:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#include <iostream>
#include <cstring>
using namespace std;

int main() {
  char s[20][100];
  int i = 0;
  do {
    cout << "Enter text:" << endl;
    cin.getline(s[i], 100);
  } while (i < 20 && strcmp(s[i++],""));

  char s_max[100], s_min[100];
  strcpy(s_max, s[0]);
  strcpy(s_min, s[0]);
  for (int j = 1; j < i-1; j++) {
    if (strlen(s[j]) > strlen(s_max))
      strcpy(s_max, s[j]);
    if (strlen(s[j]) < strlen(s_min))
      strcpy(s_min, s[j]);
  }

  cout << "Max = " << s_max << endl;
  cout << "Min = " << s_min << endl;
  return 0;
}
票数 2
EN

Stack Overflow用户

发布于 2012-01-23 19:21:56

请尝试使用char S20;而不是char S100;

票数 2
EN

Stack Overflow用户

发布于 2012-01-23 19:21:15

来自cplusplus.com

返回一个整数值,表示字符串之间的关系:零值表示两个字符串相等。大于零的值表示不匹配的第一个字符在str1中的值大于在str2中的值;小于零的值表示相反。

它不应为1或-1,请尝试使用>/< 0进行测试。此外,测试从stdio读取的字符串是否以'\0‘结尾,并最终添加它(getline应该),因为strcmp使用它。

另外,如果数组大小错误,请注意。应为char S[20][100]

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8977294

复制
相关文章
strcmp函数和strcpy函数
strcmp函数是比較两个字符串的大小,返回比較的结果。一般形式是:
全栈程序员站长
2022/07/12
6810
strlen函数,strcat函数,strcpy函数,strncpy函数,strcmp函数
strcpy函数: char *strcpy(char *Dest , const char *Src)   {       assert((Dest != NULL) && (Src != NULL));   char *address = Dest;   while((*Dest++ = *Src++) != '\0')           NULL;   return address;   }   strncpy函数: 利用标准库函数strncpy(),可以将一字符串的一部分拷贝到另一个字
猿人谷
2018/01/17
2.4K0
【C 语言】C 字符串 ( 表示方法 | strcpy | strcat | strlen | strcmp )
文章目录 C 字符串表示方式 C 字符串 拷贝 ( strcpy ) C 字符串 拼接 ( strcat ) C 字符串 长度获取 ( strlen ) C 字符串 对比 ( strcmp ) C 字符串表示方式 C 字符串表示方法 : 1.字符数组表示方法 : 本质是 字符 数组 char[] , 这里注意字符数组要以 NULL 或 ‘\0’ 结尾; // ① 字符数组 : 本质是 字符 数组 char[] , 这里注意字符数组要以 NULL 或 '\0' 结尾; char string_c[
韩曙亮
2023/03/27
6300
【C 语言】C 字符串 ( 表示方法 | strcpy |  strcat | strlen | strcmp )
C语言进阶(九) - 字符与字符串函数 - 2 - strcpy、strcat、strcmp
点击转到cpluscplus.com官网 - strcpy 所需头文件string.h
怠惰的未禾
2023/04/27
3210
C语言进阶(九) - 字符与字符串函数 - 2 - strcpy、strcat、strcmp
【C语言】字符串函数及模拟实现strlen&&strcpy&&strcat&&strcmp
因为strlen()返回无符号整型,虽然3-6<0,但是对于无符号的数来说,怎么可能有负数呢?所以结果肯定是>号
平凡的人1
2022/11/15
3150
【C语言】字符串函数及模拟实现strlen&&strcpy&&strcat&&strcmp
FZU 电动车通行证制度
初始思路:       是定义了两个数组,一个储存进去车辆的信息,另一个储存的是出去的车辆的信息,这样导致每次进去都需要查找车辆以前是否出去过,若出去过需要清楚出去信息,若车辆需  要  出去,又要查找该车辆是否进去过,若进去过要清楚进去的信息,以至于最终也不知道哪里出错了。 后来思路:      借鉴了别人的代码,恍然大悟,只需要用一个数组来标记汽车是否出去或进来,令flag=1是进入,flag=0是出去 #include<stdio.h> #include<map> #include<string.h>
用户1624346
2018/04/11
5000
大佬,我代码哪错了?
问题无处不在 我: “大佬,帮我看看这个问题错在哪了?” 大佬: “你的代码呢、你的错误提示呢?” 我: “好的,我发给你” 大佬: “。。。 再见” 留下一脸懵逼的我 如何解决问题 最简单的方法是根据错误提示,查看对应位置的代码,Pycharm会提示具体是哪一行代码有问题,并抛出错误。 找到错误首先应自己想办法解决,自己解决又分为几种:有经验的大佬看到Error就知道是哪里有问题了,没经验怎么办,那就自己去搜索了。 下个结论,你遇到的问题,前人一定遇到过。 所以你只需要把你的错误提示搜索就好了
小歪
2018/04/04
8000
大佬,我代码哪错了?
strcpy和memcpy的区别
strcpy和memcpy都是标准C库函数,它们有下面的特点。 strcpy提供了字符串的复制。即strcpy只用于字符串复制,并且它不仅复制字符串内容之外,还会复制字符串的结束符。 已知strcpy
Gxjun
2018/03/21
1.3K0
strcpy和memcpy的差别
即strcpy仅仅用于字符串复制。而且它不仅复制字符串内容之外,还会复制字符串的结束符,strcpy_s更安全。
全栈程序员站长
2022/07/11
7820
这个语句报了无效语法的错误 但是我不知道是哪里写错了
前几天在Python最强王者交流群【群除我佬】问了一个Pandas处理的问题,提问截图如下:
Python进阶者
2023/03/02
7050
这个语句报了无效语法的错误 但是我不知道是哪里写错了
💡我居然用错了useMemo和useCallback这么久?
我们知道,useMemo和useCallback主要作用是缓存中间状态,减少无意义的的render从而提高性能。但是最近我发现我对它们的使用一直有误解!
萌萌哒草头将军
2023/06/08
2310
💡我居然用错了useMemo和useCallback这么久?
我想知道到底谁错了
最近在做GEO数据挖掘的文章复现,文章标题是“Identification of Hub Genes and Pathways of Triple Negative Breast Cancer by Expression Profiles Analysis”,链接如下:https://pubmed.ncbi.nlm.nih.gov/33688252/
生信技能树
2021/07/06
3920
sprintf、strcpy和memcpy的区别
做某题用到了sprintf把一个字符数组(字符串)写到二维字符数组里,然后耗时挺长的,想了想strcpy好像也可以,事实证明strcpy效率果然更高,然后想了想觉得memcpy好像也可以。实践了一下的确可以,效率不用说也比sprintf高,毕竟memcpy是对内存操作。然后我就百度了一下它们的区别,做个总结(记笔记)。
饶文津
2020/06/02
1.7K0
手写strcpy和memcpy代码实现
本篇文章聊一下strcpy和memcpy的代码实现,这两个也是c和c++面试中常考的问题点。
cpp加油站
2021/06/07
1.3K0
我发现 Linux 文档写错了
周末的时候,有位读者疑惑为什么 Linux man 手册中关于 netstat 命令中的 tcp listen 状态下的 Recv-Q 和 Send-Q 这两个信息的描述跟我的图解网络写的不一样?
小林coding
2022/05/21
1.4K0
我发现 Linux 文档写错了
strcpy和strcat易忽略点
首先来看一段C程序: 1 #include <stdio.h> 2 #include <string.h> 3 #include <stdlib.h> 4 5 void GetMem(char*& pstr){//注意必须要用指针的指针或者指针的引用。如果传本身,返回的已经是空悬指针了 6 pstr=(char*)malloc(20); 7 } 8 9 int main(){ 10 char* str; 11 GetMem(str); 12 13 st
xiaoxi666
2018/10/29
6470
拿捏住C字符串,这个烦人程度不亚于指针的小东西
曾几何时,看到过这么一句话:字符串处理能力能够反映出一个程序员的技术功底。 这句话我一直在理解,每到一个阶段,都会有不同的理解。
看、未来
2021/09/18
2960
我和虚拟偶像做同事
当大众对元宇宙尚处于懵懂状态时,看得见的虚拟偶像们便成了连接现实世界的桥梁,填补了对元宇宙的想象空白。
镁客网
2022/02/10
7810
我和虚拟偶像做同事
strncpy和strcpy区别_C语言strncpy
1) Copies at most count characters of the character array pointed to by src (including the terminating null character, but not any of the characters that follow the null character) to character array pointed to by dest.
全栈程序员站长
2022/09/20
6820
不同的strcmp
该文介绍了在Android和iOS系统中所使用的strcmp函数的实现细节和差异。首先介绍了Android中strcmp的实现,然后说明了iOS中strcmp的实现。这两个实现的主要区别在于:1)对于字符串结束标志的处理方式不同;2)对于指针比较操作的方式不同。在Android中,以0作为字符串结束标志,在iOS中,以'\0'作为字符串结束标志。此外,在Android中,比较操作符为“!=”,在iOS中为“<”。
梦里茶
2017/12/29
1K0

相似问题

不兼容的strcpy和strcmp参数类型

20

如果(!strcmp() ...做?

53

我哪里错了?

33

C中由strcmp和strcpy引起的程序错误

22

使用strcmp和strcpy按字母顺序对省名进行排序

219
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文