我不知道 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);
这是一个未完成的代码,用于将字母数字字符转换为摩尔斯电码。到目前为止,只有字符 "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);