【发布时间】:2012-12-09 23:02:54
【问题描述】:
我想使用 strcmp 将 char 数组的子范围与另一个字符串进行比较。 我通过读取文本文件然后将它们连接成更长的字符数组来制作 dna 字符数组。
char dna[10] = "ATGGATGATGA";
char STOP_CODON[3] = "TAA";
int TS1 = strcmp(&STOP_CODON[0]),dna[0]);
int TS2 = strcmp(&STOP_CODON[1]),dna[1]);
int TS3 = strcmp(&STOP_CODON[2]),dna[2]);
if(T1+T2+T3) == 3 {
int T = 1;
}
因此,如果它们都匹配,则 T 返回 true(1) 我想在三个字符的子范围内将 STOP_CODON 与 dna 进行比较。 我想不出一种简单的方法。在matlab中你可以这样做:
strcmp(STOP_CODON[1:3],dna[1:3])
在 C 中这样的事情可能吗?我想用它最终迭代整个 dna 数组,实际上是 60,000 个字符长
printf("%s.6\n",&dna[1]);
printf 有这种功能,但我想用 strcmp 来做。在 C 中还有比这更有效的方法吗?
【问题讨论】:
-
strncmp(dna + offset, STOP_CODON, 3); -
甚至:strstr() BTW
char STOP_CODON[3] = "TAA";将导致数组不是以 nul 结尾的。最好改用char STOP_CODON[] = "TAA";。