Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/62.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.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中只打印带有get()的字符串的第一个单词?_C_String_Word - Fatal编程技术网

有没有一种方法可以在C中只打印带有get()的字符串的第一个单词?

有没有一种方法可以在C中只打印带有get()的字符串的第一个单词?,c,string,word,C,String,Word,我对编程非常陌生,我想知道是否有办法用C中的get()打印出字符串的第一个单词 void printFirstWord(字符字符串[]) { int i; 对于(i=0;i

我对编程非常陌生,我想知道是否有办法用C中的get()打印出字符串的第一个单词

void printFirstWord(字符字符串[])
{
int i;
对于(i=0;i<(字符串[i]!='\0');i++)
{
if(isalpha(字符串[i]))
printf(“%c”,字符串[i]);
}
}
int main()
{
字符串[MAX];
printf(“在场景中键入”);
获取(字符串);
printFirstWord(字符串);
返回0;
}

这就是我现在在main中编写和调用的函数。是因为函数中有isalpha吗?

在您的实现中,您可以在循环中添加以下行:

if (string[i] == ' ')
 break;
另外,修复循环参数,例如:

for (i = 0; i <  strlen(string); i++)
for(i=0;i
以您的方式进行的总体实施如下所示。 考虑根据你得到的评论选择另一个设计,例如不使用GET。
void printFirstWord(char string[])
{
    int i;

    for (i = 0; i <  strlen(string); i++)
    {
        if (isalpha(string[i]))
            printf("%c", string[i]);

        if (string[i] == ' ')
            break;
    }


}

int main()
{
#define MAX 100
    char string[MAX];
    printf("Type in a scentence\n");
    gets_s(string, MAX);
    printFirstWord(string);

    getchar();
    return 0;
}
void printFirstWord(字符字符串[])
{
int i;
对于(i=0;i
我刚刚找到了一种使用isblank()的方法;函数,希望对任何人都有帮助:)

#包括
#包括
#包括
int main(){
整数长度、数字、计数器、位置;
字符名[50];
printf(“请键入您的全名:\n”);
获取(名称);
//strlen();
//返回给定以null结尾的字节字符串的长度,即字符数组中的字符数
长度=strlen(名称);
//计算每个位置,直到找到一个空间

for(counter=0;counter代码做什么?您希望它做什么?
gets()
不打印任何单词。而且,
gets()
已经过时,不再是标准的C。在
printFirstWord
中,当您到达第一个单词的末尾时,中断
for
循环。
scanf(“%s”,字符串)
无论如何只读取第一个单词(并且应该将最大长度添加到格式字符串中以避免缓冲区溢出)。如果仍要读取整行,请尝试
fgets()
。请阅读。或者干脆
void printFirstWord(char string[]){int i;for(i=0;isalpha(string[i]);i++)putchar(string[i]);}
gets\u s
缺少参数。为什么不使用保证可用的函数
fgets
?奥拉夫:你是对的,如果我们真的想在安全模式下使用它,应该为它提供最大大小。已修复。我试图向初学者解释如何修复代码而不进行旋转,以便他能理解。这段代码很有效,他也能理解lped是作者,我无法理解那些反对票。
void printFirstWord(char string[])
{
    int i;

    for (i = 0; i <  strlen(string); i++)
    {
        if (isalpha(string[i]))
            printf("%c", string[i]);

        if (string[i] == ' ')
            break;
    }


}

int main()
{
#define MAX 100
    char string[MAX];
    printf("Type in a scentence\n");
    gets_s(string, MAX);
    printFirstWord(string);

    getchar();
    return 0;
}
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int main (){
int length, number, counter, position;
char name[50];
printf("Please type your complete name:\n");
gets(name);
//strlen();
//Returns the length of the given null-terminated byte string, that is, the number of characters in a character array
length=strlen(name); 
    //Counts each position until it finds a space
   for(counter=0;counter<length;counter++)
   {
            if(isblank(name[counter]))
                      position=counter;
   }
   //Prints each character until the counter reaches the position number given by the counter variable
   printf("\nThe first word you typed is: ");
   for(number=0; number<=position; number++){
    printf("%c", name[number]);
   }

  }