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