我是 C 语言新手,有人要求我用 C 语言编写一个程序,要求在用户输入后打印 '.'
后的每个字母。
例如,如果用户输入 a..bcd..e.f..gh
则输出应为 befg
这正是我在类里面给出的例子。
我认为这需要使用指针,但我不确定如何处理这个问题,这是我迄今为止尝试做的。我知道这是不正确的,请帮助我理解如何使用指针来处理这个问题。
#include <stdio.h>
int main() {
char *c, count =0;
printf("enter some characters");
scanf("%s", &c);
while( c != EOF ) {
if (c != '.') {
count ++;
}
else; {
printf("%s", c);
}
}
}
最佳答案
程序可以如下所示
#include <stdio.h>
#define N 100
int main( void )
{
char s[N];
const char DOT = '.';
printf( "Enter some characters: " );
fgets( s, N, stdin );
for ( char *p = s; *p; ++p )
{
if ( p[0] == DOT && p[1] != DOT ) putchar( p[1] );
}
putchar( '\n' );
}
它的输出可能看起来像
Enter some characters: a..bcd..e.f..gh
befg
请考虑到此处打印点后面的任何符号(点本身除外)。您可以添加一个检查,以确保点后面有一个字母。
关于c - 打印 '.' 之后的每个字母,例如如果我输入 a..bcde..fg..h,程序将打印 bfh,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35511607/