gpt4 book ai didi

C 编程 拼字游戏类型

转载 作者:行者123 更新时间:2023-11-30 15:16:55 25 4
gpt4 key购买 nike

我试图弄清楚如何一起测试两个字符串,以查看名为“target”的数组中的字母是否包含在数组“str1”中。如果 target 中的所有字母都能在 str1 中找到,则 testWord 返回 true,否则返回 false。这是我到目前为止的代码,在找到一个字母后停止。如何继续循环 str1 的其余部分?

    #include <stdio.h>
int testWord(char str1[], char target[]);

int main() {
char str1 [8] = {'q','i','j','i','b','o'};
char target [3] = {'j','i','b'};
int a= testWord(str1, target);
printf("%d", a);
return 0;
}

int testWord(char str1[], char target[]) {
for(int i = 0; i < sizeof(*str1) ; i++) {
for (int j = 0; j < sizeof(*target); j++) {
if (strstr(str1, target)) {
printf("%s%c%s\n","Target letter ", target[i], " was found");
//delete letter from set
str1[i - 1] = str1[i];
i++;
}
}
}
return 0;
}

最佳答案

您的代码中有很多错误,

  1. 您正确初始化了数组,但它们不是 字符串。使它们成为 意义上的有效字符串。你需要 nul 终止它们,

    char str1[8]   = {'q', 'i', 'j', 'i', 'b', 'o', '\0'};
    /* ^ nul */
    char target[3] = {'j', 'i', 'b', '\0'};
    /* ^ nul */
  2. 您错误地使用了 sizeof 运算符

    sizeof(*str1)

    将始终为您提供1,因为str1的类型是char *,因此是*str1的类型是 charsizeof(char) 根据定义是 1

    了解 sizeof 运算符,它不返回字符串的长度,它在编译时评估参数,并给出类型的大小或数组中的大小数组的情况。你的不是数组,即使你在参数定义中指定了大小,它也会转换为 char * 类型的指针。

这只是两个错误,但对于这么少量的代码来说却是很多错误。

关于C 编程 拼字游戏类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32813753/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com