在C中的两个设置位置(整数值)之间比较两个字符串的两个子字符串[关闭]
Posted
技术标签:
【中文标题】在C中的两个设置位置(整数值)之间比较两个字符串的两个子字符串[关闭]【英文标题】:Comparing two Sub-Strings of two Strings between two set positions (integer values) in C [closed] 【发布时间】:2019-04-12 02:46:28 【问题描述】:我有两个字符串,想比较它们,但在两个变量之间。示例:字符串 a = "***" 和字符串 b = "stacknotoverflow"。我想检查两个字符串的字符串 a 的第 5 个位置(int = 5 直到 int =9)和字符串 b 的第 8 个位置(int = 8 直到 int = 12)之间的每个字符是否相同。谁能帮我解决这个简单的问题?
【问题讨论】:
C 还是 C#?为什么要两个标签? 你尝试过做什么,问题出在哪里? 我有一个数组 char a[1000][100]。我得到了一个字符串:。现在我想比较它们,但只比较第 5 和第 8 个字符之间的位置。 重新打开。这个问题是关于比较内部子字符串,而不是简单的字符串比较。 再次以“过于宽泛”为由投票结束。 OP 没有显示任何尝试。 【参考方案1】:您可以使用strncmp
函数比较两个字符串,最多可包含最大字符数。要在字符串中间开始比较,您需要传入数组元素的地址以开始比较。
例如:
if (strncmp(&string1[4], &string2[4], 4) == 0)
printf("characters 5 - 8 are the same\n");
else
printf("characters 5 - 8 are not the same\n");
【讨论】:
感谢您帮助新手 :)【参考方案2】:假设你在谈论 C。
https://linux.die.net/man/3/strcmp
此函数用于比较 C 中的字符串。
int result = strcmp(str1, str2);
printf("Compare result: %d", result);
【讨论】:
这会比较整个字符串,这不是问题。以上是关于在C中的两个设置位置(整数值)之间比较两个字符串的两个子字符串[关闭]的主要内容,如果未能解决你的问题,请参考以下文章