📜  如何找到没有字符串.h的字符串的长度并在C中循环?

📅  最后修改于: 2021-05-25 19:18:04             🧑  作者: Mango

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

Enter a string: GeeksforGeeks (Say user enters GeeksforGeeks)
Entered string is: GeeksforGeeks
Length is: 13

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

C
#include 
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);
}


C
// C program for the above approach
#include 
 
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;
}


输出
Entered String is:GeeksforGeeks
Length is:13

这个想法是使用printf()的返回值。
printf()返回成功写入输出的字符数。
在上面的程序中,我们仅使用printf()的属性,因为它返回在数组字符串输入的字符数。

在不使用字符串.h或循环的情况下查找字符串长度的另一种方法是递归。
以下程序使用递归来查找字符串的长度。

C

// C program for the above approach
#include 
 
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
想要从精选的最佳视频中学习和练习问题,请查看《基础知识到高级C的C基础课程》。