繁体   English   中英

要求用户输入名称并在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 != '\0')
    {
        x++;
    }
    printf ("%c/n", c);

}

我了解这完全是一团糟,但是我还是想弄清楚是否最好退出,因此我们将不胜感激。

提前致谢。

我要尝试遵循的逻辑是,由于C中的字符串只是数组中的字符,因此应为首字母的字符将位于'\\ 0'值之后。

在C中, \\0表示字符串的结尾,因此您绝对不想寻找该值。

让我们考虑一下逻辑。 某人的名字缩写可能是:

  • 字符串中的第一个字符
  • 空格后的第一个字符

–即“ Albus Percival Wulfric Brian Dumbledore”->“ APWBD” –

因此,您将需要遍历字符串,查找以下其中一个:

  • 一个空格,在这种情况下,您需要获取下一个字母,或者
  • 字符串的结尾( '\\0' ),在这种情况下,您将要停止。

需要注意的边缘情况:

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

请不要气–-我们都是初学者。 这种想法并不总是直截了当的,但答案最终会到来。 祝好运!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM