求字符串长度 怎么修改

问题描述
求一个长度不大于200的字符串的长度,要求不使用strlen方法。
输入
本题有多组测试数据。
一行给定一个字符串。
输出
字符串的长度。
输入样列
I love Beijing.
Beijing
输出样例
15
7

#include<stdio.h>
int main()
{
    char ch;
    int s;
    while((ch=getchar())!=EOF){
        s=0;
        while(ch!='\n'){
            s++;
        }
        printf("%d\n",s);
    }
    return 0;
}

img


这样?


#include<stdio.h>
int main()
{
    char ch[250];
    int s=0,s2=0;
    int i=0,j=0;
    while(1)
    {
        s=0;i=0;
        gets(ch);
        while(ch[i]!='\0')
        {
            if(ch[i]!='\n')
            {
                s++;
            }
            i++;
        }
        printf("%d\n",s);

    }
    return 0;
}

while改if试试

#include<stdio.h>
int main()
{
    char ch;
    int s;
    while((ch=getchar())!=EOF){
        s=0;
        if(ch!='\n'){
            s++;
        }
        printf("%d\n",s);
    }
    return 0;
}
 

#include<stdio.h>
int main()
{
    char ch[200];
    int s;
    gets_s(ch);
    int i = 0;
    while (ch[i]!='\0')
    {
        i++;
    }
    printf("%d\n",i);
    return 0;
}

这种没给定指定测试数据的直接写成死循环,OJ一般能过的

#include <stdio.h>
int main()
{
    char ch;
    int s;
    while (1)
    {
        s = 0;
        while ((ch = getchar()) != '\n')
        {
            s++;
        }
        printf("%d\n", s);
    }
    return 0;
}


改这样吧

img


#include<stdio.h>
int main()
{
    char ch[250];
    char ch2[250];
    int s=0,s2=0;
    int i=0,j=0;
    gets(ch);
    while(ch[i]!='\0')
    {
        if(ch[i]!='\n')
        {
            s++;
        }
        i++;
    }
    i=0;
    gets(ch2);
    while(ch2[i]!='\0')
    {
        if(ch2[i]!='\n')
        {
            s2++;
        }
        i++;
    }
    printf("%d\n",s);
    printf("%d\n",s2);
    return 0;
}