我有一个程序,需要计算数组finalArr[]中的第一个单词的数量。为此,我将第一个单词单独写入数组distArr[]。然后将**finalArr[]数组的元素与distArr[]数组的元素进行比较。但最终结果不正确。例如,我在finalArr[]**中有字符串“qwe qwe qwe”,正确的结果必须是“3”。
#include <stdio.h>
#include <string.h>
void main(void)
{
char finalArr[100];
char src;
int i = 0;
printf("Enter a string: ");
// fill the array
while ((src = getchar()) != '\n' && i < 99)
{
finalArr[i] = src;
i++;
}
finalArr[i] = '\0';
printf("Result is: %s\n", finalArr); // output array
// writing first word to distArr[]
char distArr[100];
int j = 0;
for (j = 0; j < strlen(finalArr); j++)
{
distArr[j] = finalArr[j];
if (finalArr[j] == ' ')
{
break;
}
}
distArr[j] = '\0';
printf("Dist array: %s\n", distArr);
printf("%c", distArr[0]);
// Compare the first word with all elements of the array finalArr[]
int count = 0;
int d;
for (int k = 0; k < strlen(finalArr); k++) {
if (finalArr[k] == ' ') {
k++;
}
for(int d = k; d < strlen(distArr); d++) {
if (distArr[d] == finalArr[d]) {
count++;
}
}
}
printf("Count: %d", count);
}
最好使用不带strtok的一维数组
1条答案
按热度按时间hrysbysz1#
这样的东西可能会起作用:
该输出:
Result:3