Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/64.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
赋值从指针生成整数,而不在C中强制转换_C - Fatal编程技术网

赋值从指针生成整数,而不在C中强制转换

赋值从指针生成整数,而不在C中强制转换,c,C,这是strcpy函数 #include <stdio.h> const char *temp1[100]; const char *temp2[100]; int i,j; const int s1; const int s2; char *in[100]; char *stradd(char *str1,char *str2) { int s1,s2; int i,j; *temp1= str1; *temp2= str2; s1 = strsi

这是strcpy函数

#include <stdio.h>
const char *temp1[100];
const char *temp2[100];
int i,j;
const int s1;
const int s2;
char *in[100];
char *stradd(char *str1,char *str2)
{   int s1,s2;
    int i,j;
    *temp1= str1;
    *temp2= str2;
    s1 = strsize(*temp1);
    s2 = strsize(*temp2);
    while(s1<=s2 || s1>=s2)
    {
        for(i=s1,j=0;temp2[j]!='\0';i++,j++)
            *(str1[i]) = *(str2[j]);
    }
    str1[i] = '\0';
    return str1;
}

int main()
{
    char in[100];
    printf("Enter a string:\t");
    scanf("%s",in);
    stradd(in,"Hello");
    for(i=0;i<=*(strsize(in));i++)
   {
    printf("\n%c",in[i]);
   }
   return 0;
}



#include <stdio.h>

char* strsize(const char *s)
{   int i,j;
    char *name = s;
    for(i=0;i<=name[i];i++)
        j=i+1;
    return j;
}
#包括
常量字符*temp1[100];
常量字符*temp2[100];
int i,j;
常数int s1;
常量int s2;
[100]中的字符*;
字符*stradd(字符*str1,字符*str2)
{int s1,s2;
int i,j;
*temp1=str1;
*temp2=str2;
s1=标准化(*temp1);
s2=标准化(*temp2);
while(s1=s2)
{
对于(i=s1,j=0;temp2[j]!='\0';i++,j++)
*(str1[i])=*(str2[j]);
}
str1[i]='\0';
返回str1;
}
int main()
{
[100]中的字符;
printf(“输入字符串:\t”);
扫描频率(“%s”,英寸);
斯特拉德(在“你好”中);

对于(i=0;i我认为您希望它使用指针和函数复制字符串

#include<stdio.h>

void copy_string(char*, char*);

main()
{
    char source[100], target[100];

    printf("Enter source string\n");
    gets(source);
 if (source && source[0] == '\0') {
      printf("source is empty\n");
      return 0;
        }
    copy_string(target, source);

    printf("Target string is \"%s\"\n", target);

    return 0;
}

void copy_string(char *target, char *source)
{
   while(*source)
   {
      *target = *source;
      source++;
      target++;
   }
   *target = '\0';
}
#包括
无效复制_字符串(char*,char*);
main()
{
字符源[100],目标[100];
printf(“输入源字符串\n”);
获取(源);
如果(源和源[0]='\0'){
printf(“源为空\n”);
返回0;
}
复制_字符串(目标、源);
printf(“目标字符串为\%s\”\n,目标);
返回0;
}
无效复制_字符串(字符*目标,字符*源)
{
while(*来源)
{
*目标=*源;
源码++;
目标++;
}
*目标='\0';
}

提示:
strsize
的返回类型是什么?因为您将它们作为int来处理,并试图将它们作为指针……您似乎对字符串声明有点困惑,例如
const char*temp1[100];
看起来有点错误。欢迎这样做!您的问题似乎与
char*strsize(const char*s)有关
返回一个
char*
但您已将其分配给声明的
int s1
。您希望如何将此数据视为字符串指针或整数?另一件事:像
const char*temp1[100]这样的全局变量是怎么回事
?你知道你在声明什么吗?一个包含100个指向不可变字符串的指针的数组。但是你没有分配它们。为什么你需要这些数组?如果target为NULL,那么你的程序将无法工作,如果源字符串太大而无法保存在target中,那么你如何处理这种情况?这只是一个基于OP和他所做的简单程序使用了100个字符之类的东西。不需要复杂的内存管理@vinayhunachyal