c - 函数 : findnextchar() doesn't work

标签 c

我必须编写一个函数:findNextChar()。该函数必须有 2 个参数,1 个字符串和 1 个字符。 char 是必须在字符串中找到的字符。如果找到该字符,则应将数组中的下一个字符存储在数组中,并在末尾附加一个“\0”。例如:

Kukuruz" und "u" = 'k','r','z',\0'

但在我的代码中,只找到字符串的第一个字符 ('k','k','k','\0')

我的代码:

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

int main()
{
  char string[]="Kukuruz";
  char *search;
  char array[3];
  int i;

  for (i=0; i<3; i++)
  {
    search = strchr(string, 'u');
    search++;
    strncpy(array, search, 1);
    printf("'%s',",array);
  }
  printf("'/0'");

  return 0;
}

最佳答案

您总是从字符串的开头搜索。相反,您必须从上一场比赛后的位置开始。

两个更改应该可以解决问题:

char *search = string;

search = strchr(search, 'u');

关于c - 函数 : findnextchar() doesn't work,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27720385/

相关文章:

C - 使用 fopen、fclose、fputc 等

c - 如何覆盖 C 编译器将结构中的字大小变量与字边界对齐

java - 从Java到C的矩阵转置移植,类型不兼容的问题

c - 如何在 timeval 结构中从秒转换为纳秒?

c - 如何添加到 char 字母的 ascii 值?

c - 为什么下面代码中两个变量的大小不同?

c - 在带有数字符号的 printf 中使用宏

c - PTHREAD_COND_INITIALIZER - 函数 pthread_cond_wait() 分支到慢速路径

c++ - 混合 C 和 C++...未定义的函数引用

c - 尝试编写解析程序时收到错误消息 "assignment makes pointer from integer without a cast"