function:findnextchar()不起作用

时间:2014-12-31 11:19:13

标签: c

我必须写一个函数:findNextChar()。该函数必须有2个参数,1个字符串和1个char。 char是必须在字符串中找到的字符。如果找到该字符,则数组中的下一个字符应存储在一个数组中,并且' \ 0'应该在最后附加。 E.g:

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;
}

2 个答案:

答案 0 :(得分:2)

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

两个变化应该可以解决问题:

char *search = string;

search = strchr(search, 'u');

答案 1 :(得分:0)

for循环迭代在标识i上完成,从0迭代到2。但是内部循环标识符i需要以array使用您的语句strncpy复制相应字符的方式使用。这是唯一找到第一个字符的原因。

您应该将下一个字符复制为strncpy(array[i], search, 1);。并在循环中分别打印所有三个array索引。