gpt4 book ai didi

c - 如何在C语言中使用指针查找字符串数组中相同字符的基地址?

转载 作者:太空宇宙 更新时间:2023-11-04 06:47:25 25 4
gpt4 key购买 nike

我输入一个字符串,然后尝试在该字符串中找到一个 char 的地址,但问题是我无法找到相同的 char 的地址在字符串中使用指针。

例如,当输入是 "ALLEN" 时,我需要两个 'L' 的地址,但我的程序只打印第一个 'L 的地址'.

我尝试了 if ... elsefor 循环,但我无法解决问题。

#include <stdio.h> 
#include <string.h>


main()
{
char a, str[81], *ptr;

printf("\nEnter a sentence:");
gets(str);

printf("\nEnter character to search for:");
a = getchar();
ptr = strchr(str,a);

/* return pointer to char*/

printf( "\nString starts at address: %d",str);
printf("\nFirst occurrence of the character (%c) is at address: %d ", a,ptr);
}

最佳答案

如果我理解正确的话:

要查找同一字符的其他出现,只需在最后一次已知出现之后查找它们。所以,你会写这样的东西:

{
const char* next_occurrence = strchr(str, a);
while (next_occurrence != NULL) {
printf(
"Character %c occurs in string \"%s\" at position %p\n",
a, str, next_occurrence - str);
next_occurrence = strchr(next_occurrence + 1, a);
}
}

您会注意到 next_occurrence + 1 是我们刚刚找到的事件之后的第一个字符的地址。

关于c - 如何在C语言中使用指针查找字符串数组中相同字符的基地址?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56174803/

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