注册 登录
编程论坛 C语言论坛

求大佬解答:请问要怎么不使用strlen函数实现计算字符串长度?

秃头少女 发布于 2019-11-03 12:02, 2956 次点击
作业题。。。。。。
老师说,要连转义字符都能计算的那种,但是我写的代码它只能计算字母和数字,没有办法计算转义字符,然后如果可以的话,希望解答是没有用到指针的方法。。。。。。
我还没有学到这。。。。。。
8 回复
#2
林月儿2019-11-03 12:04
这个要遍历判断吧
#3
秃头少女2019-11-03 12:19
回复 2楼 林月儿
想请问如果使用循环判断的话,以下代码要怎么添加条件呢?
#include<stdio.h>
int main ()
{
    char ch[10000];
    int nnum[26]={0};
    int i,j;
    printf("请输入一串字符:\n");
    gets(ch);
    i=0;
    for(i=0;ch[i]!='\0';i++)
    {
        
    }
        printf("%d",i);
    return 0;
}
#4
林月儿2019-11-03 12:48
https://bbs.bccn.net/thread-497555-1-1.html
里面有一行是scanf("%s",str);
通过读取字符串用while循环判断啊
int i=0;
while(str[i]!='\n')i++;
printf("len:%d",i);
#5
秃头少女2019-11-03 12:54
回复 4楼 林月儿
那个,您好像回复成我的上一个帖子了?
但是还是非常感谢您!!!
#6
纯蓝之刃2019-11-03 13:26
程序代码:
#include<stdio.h>
int main ()
{
    char ch[10000];
    int nnum[26]={0};
    int i=0,j=0;
    printf("请输入一串字符:\n");
    gets(ch);
    for(i=0;ch[i]!='\0';i++)
    {
        if(ch[i]!='\\')
            j++;
    }
    printf("%d",j);
    return 0;
}
#7
秃头少女2019-11-03 13:43
回复 6楼 纯蓝之刃
您好,当我输入"\\\\\\"时,它显示字符长度为0,而不是3,所以这个代码也不行呢。
#8
林月儿2019-11-03 14:45
以下是引用秃头少女在2019-11-3 13:43:03的发言:

您好,当我输入"\\\\\\"时,它显示字符长度为0,而不是3,所以这个代码也不行呢。


这个就涉及到结束位置字符判断了,你可以设置一个结束的特殊字符
#9
秃头少女2019-11-03 15:09
非常抱歉!!!
因为我个人对存储在内部的实际代码和显示在屏幕上的代码的概念弄混了,导致你们被我带偏了思路。在屏幕上手动输入的字符“\\”或者“\n”等的确就是算2个字符,和代码里的“\\”、“\n”算1个字符是不一样的概念。
为此我感到非常抱歉,为了不浪费更多人的时间,我就结贴啦。
1