赋值从指针生成整数,而不在C中强制转换
这是strcpy函数赋值从指针生成整数,而不在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
#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