我必须写一个函数: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;
}
答案 0 :(得分:2)
您总是从字符串的开头搜索。相反,你必须在最后一场比赛后从一个位置开始。
两个变化应该可以解决问题:
char *search = string;
和
search = strchr(search, 'u');
答案 1 :(得分:0)
for
循环迭代在标识i
上完成,从0
迭代到2
。但是内部循环标识符i
需要以array
使用您的语句strncpy
复制相应字符的方式使用。这是唯一找到第一个字符的原因。
您应该将下一个字符复制为strncpy(array[i], search, 1);
。并在循环中分别打印所有三个array
索引。