要求用户输入他们的名字并在 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 结尾会怎样? (如果你保证获得正确格式的输入,这可能不会发生)
请不要气馁——我们都曾经是初学者。这种想法并不总是直截了当的,但答案最终会出现。祝你好运!
我只是想通过承认我是一个完全的编码初学者来开始这件事,这不是我凭直觉就能想到的事情。
我想做的是编写一个简单的程序,让用户输入他们的全名,并输出他们的首字母。我试图遵循的逻辑是,由于 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 结尾会怎样? (如果你保证获得正确格式的输入,这可能不会发生)
请不要气馁——我们都曾经是初学者。这种想法并不总是直截了当的,但答案最终会出现。祝你好运!