字符串长度始终为 0

本体罪

我正在尝试自学 C,所以我正在编写一个程序来查看另一个字符串的末尾是否存在一个字符串。

#include <stdio.h>
#include <stdlib.h>

int containsAtEnd(char *s,  char *t);
int strlen(char *s);

int main()
{
    char *x = "tacocat";
    char *y = "bol";
    printf("%d\n", strend(x, y));
    getchar();
    return 0;
}


int strlen(char *s)
{
    int i;
    for (i = 0; i != '\0'; ++i)
        ;
    printf("%d", i);
    return i;
}

int containsAtEnd(char *s, char *t)
{
    int tlen = strlen(*t);
    int slen = strlen(*s);
    int i = 0;
    s += slen - tlen;
    while ((*s == *t) && *s != '\0')
        i++; s++; t++;
    if (i < (tlen-1))
        return 0;
    else
        return 1;
}

然而,不管主函数中给出的字符串如何,“001”总是被打印出来,这表明 0 中的字符串和第二个字符串的长度都存在于第一个中。

尼克拉斯·R。

请尝试以下代码是否可以帮助您。我还建议您使用 IDE 或分析程序,它会告诉您如何从整数获取指针而不进行强制转换以及始终为真(或始终为假)的条件。

#include <stdio.h>

int containsAtEnd(char *s,  char *t);
int strlen(char *s);

int strlen(char *s)
{
    int i;
    for (i = 0; s[i] != '\0'; ++i)
        ;
    printf("%d", i);
    return i;
}

int containsAtEnd(char *s, char *t)
{
    int tlen = strlen(t);
    int slen = strlen(s);
    int i = 0;
    s += slen - tlen;
    while ((*s == *t) && *s != '\0') {
        i++; s++; t++;
    }
    if (i < (tlen-1))
        return 0;
    else
        return 1;
}

int main()
{
    char *x = "tacocat";
    char *y = "bol";
    printf("%d\n", containsAtEnd(x, y));

    char *x2 = "foobarbaz";
    char *y2 = "bar";
    printf("%d\n", containsAtEnd(x2, y2));

    getchar();
    return 0;
}

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

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

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

始终将NULL排序为空字符串或0

发布空正文(长度为 0 的字符串)

for循环中的c ++字符串使长度为0

甚至避免使用Option字段。字符串始终为空字符串,整数可选字段为0

使用Java中的Scanner接受空字符串或长度为0的字符串作为输入

使字符串的长度始终为n

为什么将字符分配给C ++字符串会导致字符串长度为0?

在VBA中声明长度为0的字符串数组-不可能吗?

使ng-show适用于长度为0的字符串“”

从字符串“ {0}(所需长度为20)”派生的String.Format

制作长度为 n 的随机字符串,仅由 0 和 1 组成

构造nfa在{0,1}上出现的字符串,以使大约两个0被长度为4i的字符串分隔,i> = 0

如何根据与目标长度相比的字符串长度差异向字符串添加 0?

C中带\ 0的字符串的长度

在字符串前面加上0(特定长度)

修复校验'\ 0'以获取字符串的长度

如何检查mongodb中的字符串长度是否> 0?

空字符串的长度怎么可能大于0?

仅当大于 0 时才显示字符串的长度

C#数组的长度始终为0

在猫鼬中,我如何要求String字段不为null或未定义(允许长度为0的字符串)?

在for循环的某些迭代中,字符串的长度为0,而在其他迭代中则不是

Dao 对象 queryForId 将长度为 0 的字符串作为参数的一部分?

Javascript中的字符串长度始终为1吗?

字符串生成器,为字符串生成空间,为数字生成 0

字符 '\0' 与字符串“\0”

连接时字符串'\ 0'为空时出错

SQL字符串'00000'显示为'0'

MySQL查询字符串搜索包含“ /”,结果为0