从'char';改为“char*'”;
代码是:从'char';改为“char*'”;,c,C,代码是: int main() { int i,last; char TXT[500]; printf("Donnez un exemple ?\n"); gets(TXT); last = strlen(TXT); for(i=0;i<50;i++){ if (i==0){ strcpy(TXT[1],TXT[0]); } else { strcpy(TX
int main() {
int i,last;
char TXT[500];
printf("Donnez un exemple ?\n");
gets(TXT);
last = strlen(TXT);
for(i=0;i<50;i++){
if (i==0){
strcpy(TXT[1],TXT[0]);
} else {
strcpy(TXT[i-1],TXT[i]);
}
}
getch();
return 0;
}
intmain(){
int i,最后;
char-TXT[500];
printf(“Donnez un example?\n”);
获取(TXT);
last=strlen(TXT);
for(i=0;iTXT
是一个500个字符的数组
因此,TXT[1]
和TXT[0]
是单独的字符(只有一个字母)。
TXT[0]
是数组中的第一个字符。
TXT[1]
是数组中的第二个字符。
函数strcpy
希望您为这两个参数传递指向字符的指针(键入char*
。
相反,你只传递了一个字符
你能解释一下这个节目的目的吗?
也许我们可以帮你解决它。TXT[i]
是char
类型。但是strcpy
需要char*
类型的参数,因为它对以空结尾的字符串进行操作。因此编译错误
至于如何修复它,这取决于您的代码试图做什么
TXT[1] = TXT[0];
strcpy
函数接受两个char*
(从技术上讲,是一个char*
和一个const char*
)。此外,不允许传递strcpy
重叠缓冲区
看起来你想写
TXT[i-1] = TXT[i];
(这将从字符串中删除前导字符)
字符串函数在字符串上工作,而不是在字符上工作
您是否正在尝试交换单词或字符?问题在于您没有考虑代码的功能,只是盲目地将代码输入文本编辑器,并期望奇迹出现。“问题的原因是什么?”让我猜猜看。缺乏经验?你不理解答案,但他们回答了你提出的问题。如果你想帮助解决问题,那么你需要定义问题。就目前情况而言,你只是要求解释编译器错误。不需要大喊大叫。很好,但我想使用strcpy?如何???我不明白你的意思?Pos在我们理解正确的代码之前,这是可能的?您想解决什么问题?16 C:\Users\ELIAS\Desktop\INFORMATIQUE TP\iza7a.cpp从char'到char*的转换无效您为什么要编写此程序?它毫无意义,似乎没有任何用处!
for(i=1 /* one, not zero */ ; i<50 ; i++) {
TXT[i-1] = TXT[i];
}
char TXT[500], TMP[500];
printf("Donnez un exemple ?\n");
fgets(TXT, 499, stdin);
strcpy(TMP, &TXT[1]); // Note that 'for' loop is no longer required