首页 > 解决方案 > 使用c函数中的指针查找字符串长度的问题

问题描述

我从我的大学得到了一个任务,那就是使用函数中的指针来查找字符串的长度。这是我的代码:

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

#define max 100

int lengthchar(char *array1[])
{
    int a, x = 0;
    for (a = 0; *(array1++) != '\0'; a++)
    {
        x++;
    }
    return x;
}

int main()
{
    char arr1[max];
    int length;

    printf("Enter string\n");
    gets(arr1);

    length = lengthchar(arr1);

    printf("Length=%d", length);

    return 0;
}

但是当我输入以下内容时:

输入字符串:av

长度=9

它显示错误的长度,我的错误是什么?

标签: carraysstringfunctionstring-length

解决方案


这是因为将字符串指针作为参数传递给函数的方式。

只需更改char *array1[]为 char *array1array1[]

看看下面的实现:

int lengthchar(char array1[])
{
    int a,x=0;
    for(a=0;*(array1++)!='\0';a++)
    {
        x++;
    }

   return x;
}

PS:a可以使用while循环删除变量。


推荐阅读