gets输入一个字符串,不用字符串strlen函数,自定义函数,计算字符串的长度?

 我来答
墨默画一
2022-12-13 · 超过24用户采纳过TA的回答
知道答主
回答量:224
采纳率:75%
帮助的人:10.8万
展开全部

可以使用以下代码定义一个函数来计算字符串的长度:

int strlen(char *str) {

    int len = 0;

    while (*str != '\0') {

        len++;

        str++;

    }

    return len;

}

该函数接受一个字符串(以字符指针的形式)作为参数,并返回字符串的长度。它通过不断遍历字符串,直到遇到字符串结束符('\0')为止,每次遍历都将字符串指针向后移动一位,并累加一个计数器。当字符串遍历完毕时,计数器的值就是字符串的长度。

示例:

char *str = "Hello, World!";

int len = strlen(str); // len = 13

该函数的缺点是,由于它依赖于字符串结束符,因此如果字符串中没有

添加字符串结束符,则无法计算字符串的长度。另外,如果字符串中包含多个字符串结束符,则会导致函数计算错误的长度。

为了避免这些问题,可以改进上述函数,使用另一种方法来计算字符串的长度。例如,可以接收一个字符数组作为参数,并在函数中指定数组的大小。这样,函数就可以遍历整个字符数组,并计算字符串的实际长度,而不会依赖于字符串结束符。

示例:

int strlen(char str[], int size) {

    int len = 0;

    for (int i = 0; i < size; i++) {

        if (str[i] == '\0') {

            break;

        }

        len++;

    }

    return len;

}

char str[] = "Hello, World!";

int len = strlen(str, sizeof(str)); // len = 13

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式