能不能看看这个怎么改啊

  • #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    int main()
    {
    int i,number,length;
    char str[15];
    gets(str);
    length=strlen(str);
    printf("字符串长度:%d\n",length);
    number=countword(str,length);
    printf("有%d个单词\n",number);
    return 0;
    }

int countword(char str[],int length)
{
int count=0;
int i;

for(i=1;i<length;i++)
{
    if(str[i-1]!=' '&&str[i]==' ')
    {
        count++;
    }
}
if(str[length]!=' ')
    {
        count++;
    }
return count;

}

img

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int countword(char str[],int length);
int main()
{
int i,number,length;
char str[15];
gets(str);
length=strlen(str);
printf("字符串长度:%d\n",length);
number=countword(str,length);
printf("有%d个单词\n",number);
return 0;
}
int countword(char str[],int length)
{
int count=0;
int i;

for(i=1;i<length;i++)
{
    if(str[i-1]!=' '&&str[i]==' ')
    {
        count++;
    }
}
if(str[length]!=' ')
    {
        count++;
    }
return count;
}

放到main前面,或者在main前面声明一下。

int countword(char str[])
{
    int count=0,isword=0;

    while(*str)
    {
        if(*str!=' ' && isword==0)
        {
            count++;
            isword=1;
        }else if(*str==' ')
        {
            isword=0;
        }
        str++;
    }

    return count;
}


#include<stdio.h>
#include<string.h>
int fun(char A[]);
int Eng(char E);

int main() {
    int Dnum=0;
    char A[200] = "They count on supermarkets so much have many reasons, first, the supermarket has all kinds of products.";
    fun(A);
    char B[200] = "When walking in the supermarket, they can buy what they want in the fastest time and save more time in wandering around the market for picking the products.";
    fun(B);
    char C[200] = "Today, the supermarket has been most people's choice when they go shopping, the supermarket is very popular.";
    fun(C);
    char D[] = "I have attended in several organizations, English club, climbing club, swimming group and so on.";
    fun(D);
    char E[] = "Hell word";
    fun(E);
    char F[] = "   Hell      word    ";
    fun(F);
    char H[] = "      ";
    fun(H);
}
//判断字符是否是英语字母
int Eng(char E) {
    if ((E >= 97 && E <= 122) || (E >= 65 && E <= 90))
        return 1;
    else return -1;
}
//求字符串中英语单词的个数
int fun(char A[]) {
    printf(A);
    int Dnum = 0;
    for (int i = 0; i < strlen(A); i++)
    {
        if (Eng(A[i]) > 0 && Eng(A[i + 1]) < 0)
            Dnum++;
    }
    //people's 多加了一次,需减回去
    for (int i = 1; i < strlen(A)-1; i++)
    {
        if (Eng(A[i-1]) > 0 && A[i]==39 && Eng(A[i + 1])>0)
            Dnum--;
    }
    printf("\n一共有%d个单词\n\n", Dnum);
    return Dnum;
}




仅供参考:

#include <stdio.h>
char s[]="123 ab 4";
char *p;
int v,n,k;
void main() {
    p=s;
    while (1) {
        k=sscanf(p,"%d%n",&v,&n);
        printf("k,v,n=%d,%d,%d\n",k,v,n);
        if (1==k) {
            p+=n;
        } else if (0==k) {
            printf("skip char[%c]\n",p[0]);
            p++;
        } else {//EOF==k
            break;
        }
    }
    printf("End.\n");
}
//k,v,n=1,123,3
//k,v,n=0,123,3
//skip char[ ]
//k,v,n=0,123,3
//skip char[a]
//k,v,n=0,123,3
//skip char[b]
//k,v,n=1,4,2
//k,v,n=-1,4,2
//End.