我遇到了一對字符串的問題。對我的第一個函數的底部,我測試了兩個字符串的長度,即使searchingForLength應該小於searchingLength的一半,它們也是相同的「長度」。這裏發生了什麼?兩個字符串應該是不同的長度,但計數爲相同的長度
下面的代碼:
#include <stdio.h>
#include <stdbool.h>
bool findString(const char searched[], const char searchingFor[]) {
int i, j, k = 0, searchedLength = sizeof(searched)/sizeof(searched[0]), searchingForLength = sizeof(searchingFor)/sizeof(searchingFor[0]);
bool in = false;
for (i = 0; i < searchedLength; i++) {
for (j = 0; j < searchingForLength; j++) {
if (searched[i] == searchingFor[j]) {
k++;
if (k == searchingForLength) {
in = true;
}
}
}
}
printf("%d\n", k);
printf("%d\n",searchingForLength);
printf("%d\n",searchedLength);
if (in == true) {
printf("Yes\n");
}
else {
printf("No\n");
}
return in;
}
int main (void) {
const char searched[] = { 'I', ' ', 'l', 'i', 'k', 'e', ' ', 'p', 'i', 'e' };
const char searchingFor[] = { 'l', 'i', 'k', 'e' };
findString(searched, searchingFor);
return 0;
}
我可以建議你在你指的「不是字符串的字符串」的地方有選擇地使用's/string/array /'嗎?這樣,這個答案會更有意義。 – Sebivor