Hi,
请问下面这句,里面的 %s
字符串中后面的 "
" 是什么意思? 请问下面这句,里面的 %s
字符串中后面的 "
" 
请问下面这句,里面的 %s
Hi,
请问下面这句,里面的 %s\0 字符串中后面的 "\0" 是什么意思?
sprintf(variable, "%s\0", value);
可以直接写成下面这样吗:
sprintf(variable, "%s", value);
请帮下忙解答一下。
这个你该问写这个代码的人。反正我是没见过这么加\0的
理论上是可以的,\0是字符串的结尾,sprintf把value放到variable里面,碰到value里的\0结束,但如果一直没有\0,就会一直放,一直放……
这里的\0我实在看出出一点点点的作用,好像真的没啥用
谢谢,应该是这个答案。
字符串都已\0结束,没有\0的字符串已经是错误了。
不一定误人了啊,万一是这样呢:
sprintf(str, "this is a string:%s and a int: %d", str_p, i);
请问下面这句,里面的 %s\0 字符串中后面的 "\0" 是什么意思?
sprintf(variable, "%s\0", value);
可以直接写成下面这样吗:
sprintf(variable, "%s", value);
请帮下忙解答一下。
15 个解决方案
#1
就是\0了呗
可以直接"%s"
可以直接"%s"
#2
如果可以直接 %s 来取 value 的值,那还要加上 \0 做什么??????
#3
这个你该问写这个代码的人。反正我是没见过这么加\0的
#4
理论上是可以的,\0是字符串的结尾,sprintf把value放到variable里面,碰到value里的\0结束,但如果一直没有\0,就会一直放,一直放……
这里的\0我实在看出出一点点点的作用,好像真的没啥用
#5
\0表示的是字符串结尾,这里没用
#6
挺多余的
#7
sprintf会自动加\0收尾的吧
#8
作用是在字符串结尾添加'\0'结束符
但是gcc下的sprintf会自动追加'\0',所以此时是多余的
vc编译器下的sprintf不会自动追'\0',但是如果你的value一般已经有'\0'结束符,复制的时候会将这个'\0'复制到新的字符串中,所以大多数时候也是多余的,当然也有例外,如果value没有'\0',此时在VC下就会出现乱码了
但是gcc下的sprintf会自动追加'\0',所以此时是多余的
vc编译器下的sprintf不会自动追'\0',但是如果你的value一般已经有'\0'结束符,复制的时候会将这个'\0'复制到新的字符串中,所以大多数时候也是多余的,当然也有例外,如果value没有'\0',此时在VC下就会出现乱码了
#include <stdio.h>
int main(void)
{
char value[4]="abcd";//注意,此时value没有'\0'结束符,VC下结果会出问题。
char variable[6]="12345";
sprintf(variable, "%s", value);
printf("variable=%s\n",variable);
return 0;
}
#9
脱裤子放屁
#10
谢谢,应该是这个答案。
#11
多虑了。。。
#12
这里的"\0"是多余的,sprintf函数会自动补上字符串结束字符'\0'。
#13
字符串都已\0结束,没有\0的字符串已经是错误了。
#14
呵呵,好像确实是这样,我误人了,罪过....
#15
不一定误人了啊,万一是这样呢:
sprintf(str, "this is a string:%s and a int: %d", str_p, i);
字符串中后面的 "
Hi,
请问下面这句,里面的 %s\0 字符串中后面的 "\0" 是什么意思?
sprintf(variable, "%s\0", value);
可以直接写成下面这样吗:
sprintf(variable, "%s", value);
请帮下忙解答一下。
这个你该问写这个代码的人。反正我是没见过这么加\0的
理论上是可以的,\0是字符串的结尾,sprintf把value放到variable里面,碰到value里的\0结束,但如果一直没有\0,就会一直放,一直放……
这里的\0我实在看出出一点点点的作用,好像真的没啥用
谢谢,应该是这个答案。
字符串都已\0结束,没有\0的字符串已经是错误了。
不一定误人了啊,万一是这样呢:
sprintf(str, "this is a string:%s and a int: %d", str_p, i);
请问下面这句,里面的 %s\0 字符串中后面的 "\0" 是什么意思?
sprintf(variable, "%s\0", value);
可以直接写成下面这样吗:
sprintf(variable, "%s", value);
请帮下忙解答一下。
15 个解决方案
#1
就是\0了呗
可以直接"%s"
可以直接"%s"
#2
如果可以直接 %s 来取 value 的值,那还要加上 \0 做什么??????
#3
这个你该问写这个代码的人。反正我是没见过这么加\0的
#4
理论上是可以的,\0是字符串的结尾,sprintf把value放到variable里面,碰到value里的\0结束,但如果一直没有\0,就会一直放,一直放……
这里的\0我实在看出出一点点点的作用,好像真的没啥用
#5
\0表示的是字符串结尾,这里没用
#6
挺多余的
#7
sprintf会自动加\0收尾的吧
#8
作用是在字符串结尾添加'\0'结束符
但是gcc下的sprintf会自动追加'\0',所以此时是多余的
vc编译器下的sprintf不会自动追'\0',但是如果你的value一般已经有'\0'结束符,复制的时候会将这个'\0'复制到新的字符串中,所以大多数时候也是多余的,当然也有例外,如果value没有'\0',此时在VC下就会出现乱码了
但是gcc下的sprintf会自动追加'\0',所以此时是多余的
vc编译器下的sprintf不会自动追'\0',但是如果你的value一般已经有'\0'结束符,复制的时候会将这个'\0'复制到新的字符串中,所以大多数时候也是多余的,当然也有例外,如果value没有'\0',此时在VC下就会出现乱码了
#include <stdio.h>
int main(void)
{
char value[4]="abcd";//注意,此时value没有'\0'结束符,VC下结果会出问题。
char variable[6]="12345";
sprintf(variable, "%s", value);
printf("variable=%s\n",variable);
return 0;
}
#9
脱裤子放屁
#10
谢谢,应该是这个答案。
#11
多虑了。。。
#12
这里的"\0"是多余的,sprintf函数会自动补上字符串结束字符'\0'。
#13
字符串都已\0结束,没有\0的字符串已经是错误了。
#14
呵呵,好像确实是这样,我误人了,罪过....
#15
不一定误人了啊,万一是这样呢:
sprintf(str, "this is a string:%s and a int: %d", str_p, i);
" 是什么意思? 请问下面这句,里面的 %s
Hi,
请问下面这句,里面的 %s\0 字符串中后面的 "\0" 是什么意思?
sprintf(variable, "%s\0", value);
可以直接写成下面这样吗:
sprintf(variable, "%s", value);
请帮下忙解答一下。
这个你该问写这个代码的人。反正我是没见过这么加\0的
理论上是可以的,\0是字符串的结尾,sprintf把value放到variable里面,碰到value里的\0结束,但如果一直没有\0,就会一直放,一直放……
这里的\0我实在看出出一点点点的作用,好像真的没啥用
谢谢,应该是这个答案。
字符串都已\0结束,没有\0的字符串已经是错误了。
不一定误人了啊,万一是这样呢:
sprintf(str, "this is a string:%s and a int: %d", str_p, i);
请问下面这句,里面的 %s\0 字符串中后面的 "\0" 是什么意思?
sprintf(variable, "%s\0", value);
可以直接写成下面这样吗:
sprintf(variable, "%s", value);
请帮下忙解答一下。
15 个解决方案
#1
就是\0了呗
可以直接"%s"
可以直接"%s"
#2
如果可以直接 %s 来取 value 的值,那还要加上 \0 做什么??????
#3
这个你该问写这个代码的人。反正我是没见过这么加\0的
#4
理论上是可以的,\0是字符串的结尾,sprintf把value放到variable里面,碰到value里的\0结束,但如果一直没有\0,就会一直放,一直放……
这里的\0我实在看出出一点点点的作用,好像真的没啥用
#5
\0表示的是字符串结尾,这里没用
#6
挺多余的
#7
sprintf会自动加\0收尾的吧
#8
作用是在字符串结尾添加'\0'结束符
但是gcc下的sprintf会自动追加'\0',所以此时是多余的
vc编译器下的sprintf不会自动追'\0',但是如果你的value一般已经有'\0'结束符,复制的时候会将这个'\0'复制到新的字符串中,所以大多数时候也是多余的,当然也有例外,如果value没有'\0',此时在VC下就会出现乱码了
但是gcc下的sprintf会自动追加'\0',所以此时是多余的
vc编译器下的sprintf不会自动追'\0',但是如果你的value一般已经有'\0'结束符,复制的时候会将这个'\0'复制到新的字符串中,所以大多数时候也是多余的,当然也有例外,如果value没有'\0',此时在VC下就会出现乱码了
#include <stdio.h>
int main(void)
{
char value[4]="abcd";//注意,此时value没有'\0'结束符,VC下结果会出问题。
char variable[6]="12345";
sprintf(variable, "%s", value);
printf("variable=%s\n",variable);
return 0;
}
#9
脱裤子放屁
#10
谢谢,应该是这个答案。
#11
多虑了。。。
#12
这里的"\0"是多余的,sprintf函数会自动补上字符串结束字符'\0'。
#13
字符串都已\0结束,没有\0的字符串已经是错误了。
#14
呵呵,好像确实是这样,我误人了,罪过....
#15
不一定误人了啊,万一是这样呢:
sprintf(str, "this is a string:%s and a int: %d", str_p, i);
字符串中后面的 "
Hi,
请问下面这句,里面的 %s\0 字符串中后面的 "\0" 是什么意思?
sprintf(variable, "%s\0", value);
可以直接写成下面这样吗:
sprintf(variable, "%s", value);
请帮下忙解答一下。
这个你该问写这个代码的人。反正我是没见过这么加\0的
理论上是可以的,\0是字符串的结尾,sprintf把value放到variable里面,碰到value里的\0结束,但如果一直没有\0,就会一直放,一直放……
这里的\0我实在看出出一点点点的作用,好像真的没啥用
谢谢,应该是这个答案。
字符串都已\0结束,没有\0的字符串已经是错误了。
不一定误人了啊,万一是这样呢:
sprintf(str, "this is a string:%s and a int: %d", str_p, i);
请问下面这句,里面的 %s\0 字符串中后面的 "\0" 是什么意思?
sprintf(variable, "%s\0", value);
可以直接写成下面这样吗:
sprintf(variable, "%s", value);
请帮下忙解答一下。
15 个解决方案
#1
就是\0了呗
可以直接"%s"
可以直接"%s"
#2
如果可以直接 %s 来取 value 的值,那还要加上 \0 做什么??????
#3
这个你该问写这个代码的人。反正我是没见过这么加\0的
#4
理论上是可以的,\0是字符串的结尾,sprintf把value放到variable里面,碰到value里的\0结束,但如果一直没有\0,就会一直放,一直放……
这里的\0我实在看出出一点点点的作用,好像真的没啥用
#5
\0表示的是字符串结尾,这里没用
#6
挺多余的
#7
sprintf会自动加\0收尾的吧
#8
作用是在字符串结尾添加'\0'结束符
但是gcc下的sprintf会自动追加'\0',所以此时是多余的
vc编译器下的sprintf不会自动追'\0',但是如果你的value一般已经有'\0'结束符,复制的时候会将这个'\0'复制到新的字符串中,所以大多数时候也是多余的,当然也有例外,如果value没有'\0',此时在VC下就会出现乱码了
但是gcc下的sprintf会自动追加'\0',所以此时是多余的
vc编译器下的sprintf不会自动追'\0',但是如果你的value一般已经有'\0'结束符,复制的时候会将这个'\0'复制到新的字符串中,所以大多数时候也是多余的,当然也有例外,如果value没有'\0',此时在VC下就会出现乱码了
#include <stdio.h>
int main(void)
{
char value[4]="abcd";//注意,此时value没有'\0'结束符,VC下结果会出问题。
char variable[6]="12345";
sprintf(variable, "%s", value);
printf("variable=%s\n",variable);
return 0;
}
#9
脱裤子放屁
#10
谢谢,应该是这个答案。
#11
多虑了。。。
#12
这里的"\0"是多余的,sprintf函数会自动补上字符串结束字符'\0'。
#13
字符串都已\0结束,没有\0的字符串已经是错误了。
#14
呵呵,好像确实是这样,我误人了,罪过....
#15
不一定误人了啊,万一是这样呢:
sprintf(str, "this is a string:%s and a int: %d", str_p, i);
"