1. 主页
  2. 文档
  3. C语言教程
  4. C语言案例实战
  5. C语言如何在没有 string.h 的情况下查找字符串的长度

C语言如何在没有 string.h 的情况下查找字符串的长度

在不使用 C 中的任何循环和 string.h 的情况下查找字符串的长度。您的程序应该以下列方式运行: 

输入一个字符串:52cxydh
输入的字符串是:52cxydh
长度为:7

您可以假设输入字符串的长度总是小于 100。
以下是解决方法。

#include <stdio.h>
int main()
{

// entered string
char ch[50] = "GeeksforGeeks";

// printing entered string
printf("Entered String is:");

// returns length of string
// along printing string
int len
= printf("%s\n", ch);

printf("Length is:");

// printing length
printf("%d", len - 1);
}
输出

Entered String is:52cxydh
Length is:13

这个想法是使用 printf() 的返回值。 
printf() 返回成功写入输出的字符数
在上面的程序中,我们只使用了 printf() 的属性,因为它返回了在数组字符串中输入的字符数。 
不使用 string.h 或循环来查找字符串长度的另一种方法是递归。
以下程序使用递归执行查找字符串长度的工作。 

// C program for the above approach
#include <stdio.h>

void LengthofString(int n,char *string)
{
if(string[n] == '\0')
{
printf("%i",n);
return;
}

LengthofString(n+1,string);
//printf("%c",string[n]);
}

int main()
{
char string[100];
printf("Give a string : \n");
scanf("%s",string);
printf("Entered string is:%s\n", string);
LengthofString(0,string);

return 0;
}

输出

Give a string : 
Entered string is:0
1

函数 LengthofString 调用自己,直到字符串的字符不是它自己调用的空字符,当它调用自己时,它会增加变量 ‘n’ 的值,该变量存储函数被调用的次数以及遇到 null 的时间字符 该函数打印“n”的值,并以与执行它的方向相同的方向返回。

这篇文章对您有用吗?