Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C程序返回带答案的%_C_Gcc - Fatal编程技术网

C程序返回带答案的%

C程序返回带答案的%,c,gcc,C,Gcc,我试图通过使用函数来计算字符串的长度。我知道有一个预定义的函数,但我想自己做一个。但这里的问题是,每当我运行这段代码时,它都会返回名称的长度,并带有一个%。像这样: ~ >>> /home/******/Coding/strlen Enter your name ==> Example The length of your name is 7% 我真的很困惑为什么会这样。请找出我的代码有

我试图通过使用函数来计算字符串的长度。我知道有一个预定义的函数,但我想自己做一个。但这里的问题是,每当我运行这段代码时,它都会返回名称的长度,并带有一个%。像这样:

~ >>> /home/******/Coding/strlen                                         
Enter your name ==> Example
The length of your name is 7% 
我真的很困惑为什么会这样。请找出我的代码有什么问题。。。我使用的是GCC版本10.2.0

/*String Length Using Function*/
#include <stdio.h>
int find_length(char[]);
int main()
{
    char name[20];
    int l;
    printf("Enter your name ==> ");
    scanf("%s",name);
    l = find_length(name);
    printf("The length of your name is %d",l);
    return 0;   
}
int find_length(char tempname[])
{
    int len=0, i;
    for(i = 0; tempname [i]!='\0'; i++)
    {
        len++;
    }
    return len;
} 
/*使用函数的字符串长度*/
#包括
int find_length(char[]);
int main()
{
字符名[20];
int l;
printf(“输入您的姓名==>”;
scanf(“%s”,名称);
l=查找长度(名称);
printf(“您姓名的长度为%d”,l);
返回0;
}
int find_长度(字符临时名称[])
{
int len=0,i;
对于(i=0;tempname[i]!='\0';i++)
{
len++;
}
回程透镜;
} 

您的shell似乎在添加
%
来告诉您,您的程序没有在输出末尾打印换行符

在输出中添加换行符以防止出现这种情况

    /* add \n to print a newline character */
    printf("The length of your name is %d\n",l);

这是什么贝壳做的?@NateEldredge-Only-ZSH似乎是这么做的。Dash和Bash似乎从打印行的末尾开始编写shell。。。