我不知道 strcpy

I can't figure out strcpy

这是一个未完成的代码,用于将字母数字字符转换为摩尔斯电码。到目前为止,只有字符 "A" 在集合中。我好像无法将"a"的摩尔斯电码字符串复制到变量"c"中。编译器告诉我,传递 strcpy 的参数 1 会在不进行强制转换的情况下从整数生成指针。

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

int main(){
    char c; /* variable to hold character input by user */
    char sentence[ 80 ]; /* create char array */
    int i = 0; /* initialize counter i */
    const char *a = ".- ";

    /* prompt user to enter line of text */
    puts( "Enter a line of text:" );

    /* use getchar to read each character */
    while ( ( c = getchar() ) != '\n') {
        c = toupper(c);
        switch (c){
            case 'A':
                strcpy(c, a);
                break
            }
        sentence[ i++ ] = c;
    } /* end while */

    sentence[ i ] = '[=10=]'; /* terminate string */

    /* use puts to display sentence */
    puts( "\nThe line entered was:" );
    puts( sentence );
    return 0;
}

c 是一个字符,而 a 是一个字符串(这解释了为什么 c 只能包含一个字符,以及为什么编译器会抱怨)。如果你想让 c 保存整个字符串,就这样声明它(就像你对 sentence 所做的那样)。

您已声明变量 c 的类型为 char:

char c;

那么您正在尝试使用 strcpy(c,a)——但是 strcpy 期望它的第一个参数是什么类型?这是联机帮助页中的签名:

char *strcpy(char *dest, const char *src);