在不使用strlen的情况下查找字符串长度并在C中使用函数

用户名

我写了这段代码,但是长度为0.我是初学者,找不到这是什么问题吗?这是我的代码:

#include <stdio.h>
#include <conio.h>
int strlgnth(char *s);      /* func prototype */

int strlgnth(char *s)
{
    int i;
    {
        for (i = 0; s[i] != '\0'; i++);
        i = i++;
    }
    return i;
}
int main()
{
    char s[1000], i, n;

    printf("Enter a string: ");
    scanf("%s", s);

    {
        i = strlgnth(s);
    }
    printf("Length of string: %d", n);

    getch();
    return 0;
}
ALK

您正在将计算结果分配给i,但是将其打印出来n

而且,由于n从未初始化过,因此代码(也)会遇到未定义的行为,以读取代码以将其打印出来。


这条线

i=i++;

是没有用的。


分配结果strlgnth()的值应具有相同的类型,即int

甚至更好地制造了strlgnth()所有i的东西size_t

size_t 保证足够宽,可以容纳平台可能使用的任何尺寸。


最后这条线

scanf("%s", s);

这是危险的,因为它会使用户过度使用s为了避免这种情况,请告知scanf()要扫描的最大字符数,即缓冲区的大小-1。必须保留备用字符1以容纳0-terminator:

scanf("%999s", s);

也许您应该清理源代码的布局。这可能有助于获得概述。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

在不使用strlen()函数的情况下,仅用一行代码就能找到c中的字符串长度?

在不使用C#中内置函数的情况下计算字符串长度

在不使用字符串方法的情况下查找字符串最后一个单词的长度 - Python

如何在不使用rand()函数的情况下获取固定长度的字符串

c# - 如何在不使用数组或拆分函数的情况下拆分字符串#

C ++:在不使用向量的情况下将字符串数组传递给函数

在不使用库函数的情况下在字符串中查找子字符串

在不使用字符串库函数的情况下替换C中的子字符串

如何在不使用任何API方法的情况下查找字符串的第一个字符

如何在不使用存储过程的情况下在所有表中查找字符串

在不使用match()的情况下查找确切的字符串

如何在不使用命令Sed的情况下查找和替换字符串?

在不使用内置字符串函数的情况下提取字符之间的单词

在不使用指针的情况下反转字符串

如何在不使用本机长度方法的情况下获取javascript中字符串的长度

C ++:如何在不使用任何内置函数的情况下将字符串转换为整数

如何在不使用库函数的情况下将字符串转换为数字

如何在不使用 javascript 中的替换函数的情况下替换字符串?

SQL:如何在不使用反向函数的情况下检查字符串的回文?

在不使用任何库函数的情况下反转字符串

在不使用内置函数的情况下计算子字符串的出现

我想在不使用内置函数的情况下反转 javascript 中的字符串

在没有html分隔符的情况下使用php和selenium在html中查找字符串

在java中不使用循环和构建方法查找字符串的长度

如何在不使用python中的find()方法的情况下在另一个字符串中查找字符串

查找字符串中单词的长度并查找具有该长度的单词。不使用导入和NLTK(Python)

如何在 C 中不使用括号的情况下修改字符串文字的内容?

如何在不使用内置 c# 方法的情况下反转字符串

如何在不使用临时字符串和C lib的情况下反转字符串?