一道二级题,关于字符串赋值有关问题,求解释
一道二级题,关于字符串赋值问题,求解释#include stdio.h#include string.hvoid fun(char*s, chart[]){
一道二级题,关于字符串赋值问题,求解释
#include <stdio.h>
#include <string.h>
void fun(char *s, char t[])
{
int m = strlen(s);
int j = 0;
for (int i = 0;i<m;i++)
{
if((int(s[i]))%2 == 1&&i%2 == 0)
continue;
t[j++] = s[i];
}
t[j] = 0;
//t[j]='/0';
}
void main()
{
char s[100], t[100];
printf("\nPlease enter string S:"); scanf("%s", s);
fun(s, t);
printf("\nThe result is: %s\n", t);
//NONO();
}
字符串最后一个字符不是应该是/0吗?为什么这里反而给它赋0是对的,而赋/0,输出是
Please enter string S:ABCDEFG12345
The result is: BDF123450烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫
烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫藺BCDEFG12345
请按任意键继续. . .
[解决办法]请注意
是
'\0';
而不是
'/0';
[解决办法]你是字符数组,当然不是以’\0‘结尾咯,要注意字符数组和字符串的区别
[解决办法]建议楼主看看这个关于字符串的赋值http://blog.sina.com.cn/s/blog_75f4e17c01012v4w.html
[解决办法]C风格字符串会一直输出到指针指向 结束字符 NULL 为止
NULL 的值就是 0 (在 stdio.h 中有宏定义 #define NULL 0)
而 '\0' 是转义字符 也表示 0
[解决办法]因为t[j]='/0' 这句赋值语句相当于你给一个地址赋了2个值,应该这样,t[j]='/' t[j+1]='0'