试图在C中的空格后抓取一个角色

时间:2017-02-03 21:52:51

标签: c string for-loop cs50

对于我正在进行的任务,我必须从C(或字符数组)中的字符串打印出首字母。为此,我知道我需要找到SPACE的位置,使用(int)name [i] == 32来查找当前字符是否为SPACE。我唯一的问题是我无法弄清楚如何找到空间,然后将下一个字符存储在字符数组中。 (例如,用户进入Mike Baggins,我必须打印出MB)。我将在下面发布我的代码,向您展示我已经走了多远。请帮忙,但请不要给我完整的解决方案。谢谢!

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

int main(void)
{
    string name = get_string(); // gets the user's input
    char firstI = name[0]; // stores the first character from the user's input
    int len = strlen(name);
    if((int)firstI >= 97 && (int)firstI <= 122) // checks if the character is lowercase
    {
        firstI -= 32; // makes the value uppercase
    }
    for(int i = 0; i < len; i++)
    {
        if((int)name[i] == 32) // checks if the character is SPACE
        {
            printf("I found a space!\n"); // prints out "I found a space"
        }
    }
    printf("%c\n", firstI); // prints out the first initial
}

1 个答案:

答案 0 :(得分:1)

它实际上很简单,例如见

Person

我所需要的只是知道字符串只是带有特殊值的数组,标记它们的结尾→ObservableValues。当然,你可以改进很多。例如,您可以计算输入字符串中有多少个首字母,并分配足够的空间来存储它们。

此外,这只有当有趣的角色立即跟随空间时才会起作用,但是知道它只是一个数组我相信你可以弄清楚如何扩展它以使它忽略连续的空格。