所以我可能会攻击这个错误的方式;我正在学习一些Javascript,并编写了一个程序,该程序将查找另一个字符串中包含的字符串,并将匹配存储在一个数组中(如果没有太大意义,请参阅我的程序应该帮助)。我试图将我的程序翻译为C,但它不起作用;我想我的问题是数据类型:C程序在字符串中查找子字符串
int main() {
char text[58];
strcpy(text, "I am James, James the Great, a pretty cool guy named James");
char store[16];
char name[6] = "James";
for (int i = 0; i <= 16; i++) {
if (text[i] == 'J') {
for (int k = i; k < i + 6; k++) {
store[k] = text[i];
}
}
}
int a = sizeof(store)/sizeof(store[0]);
for (int b = 0; b < a; b++) {
/* This should print out the values stored in the store array */
printf("%d", store[b]);
}
return 0;
}
我预期的结果会是这样的:
JamesJamesJames
相反,我得到:
10000747474747474-6374747474
所以我假设它在做什么我告诉它这样做,只是不把字母作为字母存储到数组中,有点令人困惑。有一个更好的方法吗?
这是JavaScript代码,我试图翻译:
var text = "I am James, James the Great, a pretty cool guy named James";
var myName = "James";
var hits =[];
for (i = 0; i < text.length; i++) {
if (text[i] === "J") {
for (var j = i; j < i + myName.length ; j++) {
hits.push(text[j]);
}
}
}
if (hits.length === 0) {
console.log("Your name wasn't found!");
} else{
console.log(hits);
}
0)' “%d”' - >' “%C”' – BLUEPIXY 2015-04-05 16:38:55
是有一些问题,简单地使用系统功能:)的strstr(? – user3629249 2015-04-05 20:44:54