我想从用户读取字符并将字符分配给char数组。但我想跳过除\n
(换行符char)之外的空格。按\n
时循环结束。我该怎么做 ?我无法使用break
和continue
。谢谢你们所有赞赏的答案。
char *
get_set(char *set)
{
char inset[10];
char ch = ' ';
int i = 0;
while(ch != '\n'){
inset[i] = scanf(" %c", &ch);
i++;
}
set[strlen(inset)] = '\0';
return (set);
}
答案 0 :(得分:1)
char *get_set(int size, char *set){// size : size of set as buffer size
char ch;
int i;
for(i = 0; i < size-1 && (ch=getchar()) != '\n'; ){
if(!isspace(ch))
set[i++] = ch;
}
set[i] = '\0';
return set;
}
答案 1 :(得分:-1)
您可以使用getchar:
while (((ch = getchar()) != '\n')) {
if(!isspace(ch))
inset[i++] = ch;
}
getchar从stdin读取下一个字符并将其作为无符号字符串转换为int,或者在文件末尾或错误时返回EOF。
答案 2 :(得分:-1)
一旦尝试这些, char *
get_set(char *set)
{
char inset[SETSIZ];
char ch = ' ';
int i = 0;
while(ch != '\n'){
if(ch!=32)// ASCII 32 for whitespaces
inset[i] = scanf(" %c", &ch);
i++;
}
set[strlen(inset)] = '\0';
return (set);
}