gpt4 book ai didi

c - 指向字符串 C 的指针

转载 作者:太空宇宙 更新时间:2023-11-04 05:40:15 24 4
gpt4 key购买 nike

尝试编写函数,如果“word”中的每个字母都出现在“s”中,则返回 1。例如:

containsLetters1("this_is_a_long_string","gas") returns 1

containsLetters1("this_is_a_longstring","gaz") returns 0

containsLetters1("hello","p") returns 0

不明白为什么不对:

#include <stdio.h> 
#include <string.h>
#define MAX_STRING 100

int containsLetters1(char *s, char *word)
{
int j,i, flag;
long len;
len=strlen(word);

for (i=0; i<=len; i++) {
flag=0;
for (j=0; j<MAX_STRING; j++) {
if (word==s) {
flag=1;
word++;
s++;
break;
}
s++;

}
if (flag==0) {
break;
}
}
return flag;
}

int main() {
char string1[MAX_STRING] , string2[MAX_STRING] ;

printf("Enter 2 strings for containsLetters1\n");

scanf ("%s %s", string1, string2);

printf("Return value from containsLetters1 is: %d\n",containsLetters1(string1,string2));

return 0;

最佳答案

试试这些:

  1. for (i=0; i < len; i++)... (使用 < 而不是 <=,否则您将多占用一个字符);
  2. if (word==s)应该是 if (*word==*s) (你比较存储在指向位置的字符,而不是指针);
  3. 指针 s 前进,但它应该回到单词的开头 s , 到达终点后,即 s -= lenfor (j=...)之后;
  4. s++word++ 之后不需要时,无论是否找到匹配项,都将指针前进相同的量;
  5. flag声明时应初始化为 1。

关于c - 指向字符串 C 的指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21004727/

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