问题标签 [strncmp]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c - strncmp() 给出误报
我一直在解决 strncmp 和 getline 的问题……所以 ai 做了一个小测试应用程序。strncmp 给出误报,我无法弄清楚我做错了什么。
这是程序
这是“test.txt”...
和程序输出
c - 如何将用户输入字符串与C文件中的字符串进行比较
所以我试图制作一个程序,在文件中搜索用户输入的单词。如果匹配,它会说“找到它”,如果它找不到任何东西,它会说“无法找到任何东西”(显然:p)。我不清楚如何扫描文件以查找用户选择的单词(通过 scanf 写入)。
这是我的(非功能性)代码。感谢您的任何建议!
}
c - strncmp 的奇怪行为
此代码在“check_connected”过程中有一个奇怪的行为。该参数在使用strncmp函数前转换为char[30],否则为“栈溢出”。问题出现在比较两个字符串的结果中,“Le solteria rige el corason..” --> 这是参数“La solteria rige el corazon...” --> 这是存储在列表中的结果是 0。我知道 strncmp 比较字符串的所有字符,根据常识,结果不应该为零。
c - “a”等于“exit”?
只是弄乱了我目前正在开发的程序,我偶然发现了这一点。该程序属于客户端-服务器类型,因此客户端向用户询问命令,服务器执行所有执行。如果输入“退出”命令,客户端将停止。我正在使用
检查是否已输入“退出”。如果我输入“a”,程序就会退出,就像输入了“exit”一样。没什么大不了的,只是想知道为什么会这样。
谢谢。
c++ - 将字符串 C++ 与通配符值进行比较
我已经在这里潜伏了很长时间,感谢您过去的所有帮助,即使这是我不得不问的第一个问题。
我正在尝试制作一个简单的数据库程序,但我遇到了它的搜索要求。搜索时,如果用户不知道值,则需要能够输入问号。如果您知道一部电影是 90 年代的,您可以输入 199 吗?它会找到所有匹配 199_ 的电影。编译时我不断收到错误,“无法将 'char*' 转换为 'char ( )[5] for argument '2' to 'bool compareYears(const char , char (*)[5]”它是我自己的,我喜欢在将它们添加到主文件之前分离这些函数并让它们在一个单独的 .cpp 文件中工作,只是为了使调试更容易。
谢谢你帮我解决这个问题,通常我从别人那里得到的最多的帮助是无用的或侮辱性的。我最需要帮助的是摆脱那个编译器错误。我这辈子都想不通。
c - strncmp 在比较两个字符串时给出分段错误
我正在尝试编写一个比较数字的前两位数字的函数,并且由于 itoa 不可用,因此我使用 sprintf 之前通过谷歌搜索找到的首先将数字转换为字符串,然后比较每个数字。出于某种奇怪的原因,我在运行它时遇到了段错误。我尝试了同样的事情,但使用了像 strncmp("100", "101", 2) 这样的实际字符串,它没有给出任何问题。问题是由于两个 sprintf 语句以某种方式弄乱了 str2。我找不到任何地方为什么会发生这种情况以及我能做些什么来解决它。在这里张贴之前花了 2 个小时。如果可能的话,将不胜感激
编辑:我试过 printf str1 和 str2 ,它们分别显示 100 和 101 。我也尝试通过 char 数组进行迭代,但再次出现 seg 错误。当我创建一个测试文件并且它全部运行时,我实际上能够成功运行它,所以我完全迷失了
编辑#2:要添加上下文,该程序中有多个文件,并且一些库包含在其他文件中。一切都被#ifndef 正确包围。问题是文件编译的顺序会产生这个问题吗?
c - 有人可以解释为什么这个功能是这样的吗?
我正在查看来自 GNU C 库 glibc-2.18 的函数,这是我为 strncmp.c 找到的代码
看着它,我不明白为什么它是这样写的。这个循环展开了吗?为什么不使用 5 或 10 而不是 4?为什么他们这样写而不是使用更直接的方法?
有人可以解释代码背后的逻辑吗?
谢谢。
c - 查找具有相同第一个字符的单词
我已经创建了一个数组,现在我正在尝试比较两个字符串的第一个符号,以及打印该单词是否正确。但是我遇到了一个问题:
将“int”分配给“char”[20]”时的类型不兼容
这是代码:
也许你们可以帮助我?
c++ - 对于我的生活,我无法比较这个数组的第一个字符
我要做的就是传入 achar* buffer
并将其与文字字符串进行比较"@"
——为什么这对我来说如此困难。
我对此有什么不明白的?
编辑: haaaa,!=
不是==
哎呀:)
c - 使用 strcmp() 从客户端读取数据未按预期工作
我正在进行一项练习,我需要在客户端和服务器之间建立网络并让它们“交谈”。我需要检查来自客户端的特定响应,然后让服务器采取相应措施。为了从客户端读取数据,我使用了一个在循环中调用 recv() 的函数,直到出现 '\n' 字符,或者没有更多字节要读取。当循环结束时,数组中的最后一个字符设置为 '\0'。函数完成后,我希望得到一个以空结尾的字符串,然后我可以在比较中使用它。这是功能 -
现在,我等待连接,声明一个名为“buf”的数组来存储我使用上述函数读取的内容,然后将 2 个字符串与 strcmp() 进行比较
我相信“buf”字符串包含“Hello\0”,因此比较应该成功。但它不是。我不知道为什么。但是,如果我使用 strncmp() 比较 2 个字符串的前 5 个字节,则比较通过。但是当我比较前 6 个字节时,它失败了。我想知道在失败的第 6 个字节位置存储了什么。