要求用户输入他们的名字并在 C 中输出他们的首字母

Asking a user to input their name and outputting their initials in C

我只是想通过承认我是一个完全的编码初学者来开始这件事,这不是我凭直觉就能想到的事情。

我想做的是编写一个简单的程序,让用户输入他们的全名,并输出他们的首字母。我试图遵循的逻辑是,由于 C 中的字符串只是数组中的字符,因此应该作为初始字符的字符将出现在 '\0' 值之后。

我不确定我的问题是逻辑问题还是将该逻辑转换为有效语法的问题,因此我们将不胜感激。

完整代码如下:

# include <stdio.h>
#include <cs50.h>
#include <string.h>

int main (void)
{

printf ("Please insert your name. \n");
string name = get_string();
//printf ("Your name is %s\n", name);
int x = 0;
char c = name [x];
while (c != '[=10=]')
    {
        x++;
    }
    printf ("%c/n", c);

}

我知道这完全是一团糟,但我再次尝试弄清楚是否最好退出,所以我们将不胜感激。

提前致谢。

The logic I'm trying to follow is that since strings in C are just characters in an array, the characters that should be an initial will come after the '[=12=]' value.

在 C 语言中,[=10=] 表示字符串的结尾,因此您绝对不想寻找该值。

我们来思考一下其中的逻辑。某人的姓名缩写可能是:

  • 字符串中的第一个字符
  • space
  • 之后的第一个字符

– 即 "Albus Percival Wulfric Brian Dumbledore" -> "APWBD" –

因此您需要遍历该字符串,查找:

  • a space,在这种情况下,您需要获取 下一个 字母,或者
  • 字符串的末尾 ('[=11=]') 在这种情况下您将要停止。

需要注意的边缘情况:

  • 如果字符串为空会怎样?
  • 如果字符串以 space 结尾会怎样? (如果你保证获得正确格式的输入,这可能不会发生)

请不要气馁——我们都曾经是初学者。这种想法并不总是直截了当的,但答案最终会出现。祝你好运!