【问题标题】:strcpy and array function char to const char problemstrcpy 和数组函数 char 到 const char 问题
【发布时间】:2020-05-31 14:45:09
【问题描述】:

我不能在带有函数的字符串中给出值。我的 strcpy 也总是有问题。

char xc[50]=trying(c);有问题

从 'char' 到 'const char*' 的无效转换 [-fpermissive]

//This function doing reverse printing.
#include <stdio.h>
#include <string.h>

char trying(char *pchar);

int main()
{

char c[50]="It is a massage";

char xc[50]=trying(c);

printf("%s",xc);

return 0;

}

还有一个问题是char d=pchar[j-i];

从 'char' 到 'const char*' 的无效转换 [-fpermissive]

b 没有在这个范围内声明

char trying(char *pchar)
{
   for(int i=0;i<strlen(pchar);i++)
   {
      int j = strlen(pchar);
    
      char b[50];
     
      char d=pchar[j-i];
    
      strcpy(b,d);
        
   }

   return b;
}

【问题讨论】:

  • 你说你有问题但你没有解释问题是什么。
  • [错误] 从 'char' 到 'const char*' 的无效转换 [-fpermissive] 它的 for char xc[50] = Try(c);
  • 是的,我知道我已经是 C 的新手了。我正在使用 deitel 如何对 c 进行编程,但我只有一种方法可以找到答案。所以我问你。

标签: c string pointers char


【解决方案1】:
  • 在您的main 函数中,char xc[50]=trying(c); 将不起作用:

要将值分配给数组,您必须使用循环一次一个字符或使用strcpy,以防 sourcedestination可以用作指针。

  • 在您的 trying 函数中,strcpy(b,d); 将不起作用:

strcpy 的签名是char * strcpy ( char * destination, const char * source ); 所以 sourcedestination 需要是指针,在你的情况下d 不是指针,它只是一个字符+逻辑上(不是语法上)你正在将d 复制到字符数组b 的第一个位置。

【讨论】:

  • 好的,感谢您的反馈,但是 strcpy 怎么做呢?我改变了我的功能块,但它再次出现问题。 int j = strlen(pchar);字符 d = pchar[j-i];字符 s1[50]; strcpy(s1,d);
  • @Joseph 你应该首先专注于学习C 样式字符串,然后是strcpy。只有这样,您才能理解其中的问题。
猜你喜欢
  • 1970-01-01
  • 2018-07-30
  • 1970-01-01
  • 2021-08-01
  • 2013-12-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-11-24
相关资源
最近更新 更多