谢谢
15 个解决方案
#1
自已手工拷贝呗,相当于自己实现了strcpy。
#2
while(*dest++ = *src++);
#3
sprintf 或 memcpy ,呵呵
#4
memcpy
#5
明白大家的指点,但是具体应该怎么样来写,还是有些不明白
#6
for(int i=0;i<length;i++)
str1[i] = str2[i];
str1[i] = str2[i];
#7
还没听明白啊,楼主是不是还没搞清楚C语言中的字符串是啥啊。:)
方法有很多,比如,对于:
char* s1 = "Hello World";
char* s2[16];
不用strcpy,也有另外好多方法可以实现把s1的内容拷贝到s2中,比如:
(1)
int len = strlen(s1);
for(int i = 0; i < len; ++i) {
s2[i] = s1[i];
}
(2)
int len = strlen(s1);
memcpy(s1, s2, len + 1);
(3)
sprintf(s2, "%s", s1);
(4)
char* p = s2;
char* q = s1;
while(*p++ = *q++)
;
(5)
s2[0] = '\0';
strcat(s2, s1);
方法有很多,比如,对于:
char* s1 = "Hello World";
char* s2[16];
不用strcpy,也有另外好多方法可以实现把s1的内容拷贝到s2中,比如:
(1)
int len = strlen(s1);
for(int i = 0; i < len; ++i) {
s2[i] = s1[i];
}
(2)
int len = strlen(s1);
memcpy(s1, s2, len + 1);
(3)
sprintf(s2, "%s", s1);
(4)
char* p = s2;
char* q = s1;
while(*p++ = *q++)
;
(5)
s2[0] = '\0';
strcat(s2, s1);
#8
char *strcpy(char *strDest, const char *strSrc);
{
assert((strDest!=NULL) && (strSrc !=NULL));
char *address = strDest;
while( (*strDest++ = * strSrc++) != ‘\0’ )
NULL ;
return address ;
}
{
assert((strDest!=NULL) && (strSrc !=NULL));
char *address = strDest;
while( (*strDest++ = * strSrc++) != ‘\0’ )
NULL ;
return address ;
}
#9
弱弱的问下:
(5)
s2[0] = '\0';
strcat(s2, s1);
这个也行么??s2[0]空间是不是不够???
(5)
s2[0] = '\0';
strcat(s2, s1);
这个也行么??s2[0]空间是不是不够???
#10
for(int i=0;i<length;i++)
str1[i] = str2[i];
不用strlen()怎样知道长度啊?是不是
for(int i=0;str2[i]!='0';i++)??
str1[i] = str2[i];
不用strlen()怎样知道长度啊?是不是
for(int i=0;str2[i]!='0';i++)??
#11
To:bargio_susie()
我那个s2是指前面定义的char s2[16],这里只是赋第一个字节。
To:shencyx(终有一天变成牛人..)
差不多,但int最好定义在for之外。
我那个s2是指前面定义的char s2[16],这里只是赋第一个字节。
To:shencyx(终有一天变成牛人..)
差不多,但int最好定义在for之外。
#12
cpystr(char *pss,char *pds){
while(*pds++=*pss++);
}
main(){
char *pa="CHINA",b[10],*pb;
pb=b;
cpystr(pa,pb);
printf("string a=%s\nstring b=%s\n",pa,pb);
}
while(*pds++=*pss++);
}
main(){
char *pa="CHINA",b[10],*pb;
pb=b;
cpystr(pa,pb);
printf("string a=%s\nstring b=%s\n",pa,pb);
}
#13
to steedhorse(晨星)
for(int i=0;str2[i]!='0';i++)??
写错了.应该改成
for(int i=0;str2[i]!=0;i++) 或for(int i=0;str2[i]!='\0';i++)??
这才对??
for(int i=0;str2[i]!='0';i++)??
写错了.应该改成
for(int i=0;str2[i]!=0;i++) 或for(int i=0;str2[i]!='\0';i++)??
这才对??
#14
在for里定义的i外面访问不了。除非你用VC6。- -b
int i;
for(i = 0; str1[i] != '\0'; ++i)
;//注意这个空语句。
这时,i就等于字符串的长度。
也可以用指针运算。
const char* p = str1;
while(*p++)
;
int len = p - str1 - 1;
int i;
for(i = 0; str1[i] != '\0'; ++i)
;//注意这个空语句。
这时,i就等于字符串的长度。
也可以用指针运算。
const char* p = str1;
while(*p++)
;
int len = p - str1 - 1;
#15
看到这个题目就立刻想到了while(*des ++ = *src ++)这个经典的式子,
Brian W.kernighan和Dennis M.Ritchie在C程序设计语言中提到过,
呵呵,简直是条件反射!
Brian W.kernighan和Dennis M.Ritchie在C程序设计语言中提到过,
呵呵,简直是条件反射!
#1
自已手工拷贝呗,相当于自己实现了strcpy。
#2
while(*dest++ = *src++);
#3
sprintf 或 memcpy ,呵呵
#4
memcpy
#5
明白大家的指点,但是具体应该怎么样来写,还是有些不明白
#6
for(int i=0;i<length;i++)
str1[i] = str2[i];
str1[i] = str2[i];
#7
还没听明白啊,楼主是不是还没搞清楚C语言中的字符串是啥啊。:)
方法有很多,比如,对于:
char* s1 = "Hello World";
char* s2[16];
不用strcpy,也有另外好多方法可以实现把s1的内容拷贝到s2中,比如:
(1)
int len = strlen(s1);
for(int i = 0; i < len; ++i) {
s2[i] = s1[i];
}
(2)
int len = strlen(s1);
memcpy(s1, s2, len + 1);
(3)
sprintf(s2, "%s", s1);
(4)
char* p = s2;
char* q = s1;
while(*p++ = *q++)
;
(5)
s2[0] = '\0';
strcat(s2, s1);
方法有很多,比如,对于:
char* s1 = "Hello World";
char* s2[16];
不用strcpy,也有另外好多方法可以实现把s1的内容拷贝到s2中,比如:
(1)
int len = strlen(s1);
for(int i = 0; i < len; ++i) {
s2[i] = s1[i];
}
(2)
int len = strlen(s1);
memcpy(s1, s2, len + 1);
(3)
sprintf(s2, "%s", s1);
(4)
char* p = s2;
char* q = s1;
while(*p++ = *q++)
;
(5)
s2[0] = '\0';
strcat(s2, s1);
#8
char *strcpy(char *strDest, const char *strSrc);
{
assert((strDest!=NULL) && (strSrc !=NULL));
char *address = strDest;
while( (*strDest++ = * strSrc++) != ‘\0’ )
NULL ;
return address ;
}
{
assert((strDest!=NULL) && (strSrc !=NULL));
char *address = strDest;
while( (*strDest++ = * strSrc++) != ‘\0’ )
NULL ;
return address ;
}
#9
弱弱的问下:
(5)
s2[0] = '\0';
strcat(s2, s1);
这个也行么??s2[0]空间是不是不够???
(5)
s2[0] = '\0';
strcat(s2, s1);
这个也行么??s2[0]空间是不是不够???
#10
for(int i=0;i<length;i++)
str1[i] = str2[i];
不用strlen()怎样知道长度啊?是不是
for(int i=0;str2[i]!='0';i++)??
str1[i] = str2[i];
不用strlen()怎样知道长度啊?是不是
for(int i=0;str2[i]!='0';i++)??
#11
To:bargio_susie()
我那个s2是指前面定义的char s2[16],这里只是赋第一个字节。
To:shencyx(终有一天变成牛人..)
差不多,但int最好定义在for之外。
我那个s2是指前面定义的char s2[16],这里只是赋第一个字节。
To:shencyx(终有一天变成牛人..)
差不多,但int最好定义在for之外。
#12
cpystr(char *pss,char *pds){
while(*pds++=*pss++);
}
main(){
char *pa="CHINA",b[10],*pb;
pb=b;
cpystr(pa,pb);
printf("string a=%s\nstring b=%s\n",pa,pb);
}
while(*pds++=*pss++);
}
main(){
char *pa="CHINA",b[10],*pb;
pb=b;
cpystr(pa,pb);
printf("string a=%s\nstring b=%s\n",pa,pb);
}
#13
to steedhorse(晨星)
for(int i=0;str2[i]!='0';i++)??
写错了.应该改成
for(int i=0;str2[i]!=0;i++) 或for(int i=0;str2[i]!='\0';i++)??
这才对??
for(int i=0;str2[i]!='0';i++)??
写错了.应该改成
for(int i=0;str2[i]!=0;i++) 或for(int i=0;str2[i]!='\0';i++)??
这才对??
#14
在for里定义的i外面访问不了。除非你用VC6。- -b
int i;
for(i = 0; str1[i] != '\0'; ++i)
;//注意这个空语句。
这时,i就等于字符串的长度。
也可以用指针运算。
const char* p = str1;
while(*p++)
;
int len = p - str1 - 1;
int i;
for(i = 0; str1[i] != '\0'; ++i)
;//注意这个空语句。
这时,i就等于字符串的长度。
也可以用指针运算。
const char* p = str1;
while(*p++)
;
int len = p - str1 - 1;
#15
看到这个题目就立刻想到了while(*des ++ = *src ++)这个经典的式子,
Brian W.kernighan和Dennis M.Ritchie在C程序设计语言中提到过,
呵呵,简直是条件反射!
Brian W.kernighan和Dennis M.Ritchie在C程序设计语言中提到过,
呵呵,简直是条件反射!