c - 如何获取 C 中多个条目的第一个字符?

标签 c

此代码适用于少于五个字母的单词:(但不适用于更高的单词)

#include <stdio.h> 

int main(void)
{
    const int size = 5; 

    char str1[size], str2[size], str3[size];

    printf("Type word1: ");
    scanf("%s", str1);

    printf("Type word2: ");
    scanf(" %s", str2);

    printf("Type word3: ");
    scanf(" %s", str3); 

    printf("First chars: '%c', '%c' e '%c'.\n", str1[0], str2[0], str3[0]); 

    return 0;
}

正确运行的唯一方法是增加“大小”变量?我想知道是否可以在不必增加“大小”变量的情况下正确处理更大的单词。

最佳答案

这会让你接近

只需保存第一个 char

#include <stdio.h> 

int main(void)
{
    char str[3];
    printf("Type word1: ");
    scanf(" %c%*s", &str[0]);

    printf("Type word2: ");
    scanf(" %c%*s", &str[1]);

    printf("Type word3: ");
    scanf(" %c%*s", &str[2]);

    printf("First chars: '%c', '%c' e '%c'.\n", str[0], str[1], str[2]); 

    return 0;
}

关于c - 如何获取 C 中多个条目的第一个字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27789120/

相关文章:

c - 如何在 C 中将一个 char 数组的整个值分配到另一个数组的一个位置为十六进制格式?

c - 将十六进制写入 C 文件(不是 ASCII)

c - 使用 C 编程的连续整数

c - 定义宏时do while(0)有什么用?

python - Python 3 解释器在嵌入时会泄漏内存吗?

c - 如何在 C 中将数组转换为二维矩阵而不分配额外的内存?

c - 递归函数中的段错误

C 修改结构体中的 const 成员

c - 找到缩放元素的正确位置(添加图表)

c - 为什么 scanf 和 printf 函数的语法中有一个指向常量的指针?