这是一个未完成的代码,用于将字母数字字符转换为摩尔斯电码。到目前为止,只有字符“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 ] = '\0'; /* terminate string */
/* use puts to display sentence */
puts( "\nThe line entered was:" );
puts( sentence );
return 0;
}
答案 0 :(得分:0)
c
是单个字符,而a
是一个字符串(这解释了为什么c
只能容纳一个字符,以及编译器抱怨的原因)。如果您希望c
包含整个字符串,请将其声明为(就像您对sentence
所做的那样)。
答案 1 :(得分:0)
您已将变量c
声明为类型char
:
char c;
然后您尝试使用strcpy(c,a)
- 但strcpy
对第一个参数的期望是什么类型?这是来自联机帮助页面的签名:
char *strcpy(char *dest, const char *src);