gpt4 book ai didi

c - 尝试接受字符并删除空格

转载 作者:太空宇宙 更新时间:2023-11-04 07:52:39 24 4
gpt4 key购买 nike

一直在尝试接收 10 个字符并输出它们,同时忽略字符之间的空格。检查数字或字母数字字符的 if 语句循环次数过多。有什么想法吗?

#include<stdio.h>
#include<ctype.h>

void GetChar();

int main () {
GetChar();

return 0;
}

void GetChar()
{
char input[100];
char output [10];

printf( "Please enter your list of ten characters: " );
fgets(input,100,stdin);

int outputIndex = 0;
int f = 0;
for (int i = 0 ; i < 100; i++ ) {

if (isdigit(input[i]) || isalpha(input[i])) {
input[i] = output[outputIndex];
}
}

printf( "Your array has these values: \n" );

for ( int i = 0 ; i < 10; i++ ) {
printf( "%c", output[ i ] );
printf("\n");
}


}

最佳答案

您正在循环越过输入字符串的末尾。不要忘记在 C 中,字符串是以 \0 或 NUL 字符结尾的字符数组。

试试这个;

  for (int i = 0 ; i < strlen(input) && outputIndex<10; i++ ) {
if (isdigit(input[i]) || isalpha(input[i])) {
output[outputIndex++] = input[i];
}
}

另外,当你打印出来时你应该;

for ( int i = 0 ; i < outputIndex; i++ ) {
printf( "%c", output[ i ] );
printf("\n");
}

关于c - 尝试接受字符并删除空格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52819764/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com