首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

一道二级题,关于字符串赋值有关问题,求解释

2013-03-21 
一道二级题,关于字符串赋值问题,求解释#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/C++ code?1'\0';
而不是
C/C++ code?1'/0';
那这个和直接赋0有什么区别呢


C风格字符串会一直输出到指针指向 结束字符 NULL 为止
NULL 的值就是 0 (在 stdio.h 中有宏定义 #define NULL    0)
而 '\0' 是转义字符 也表示 0
[解决办法]
因为t[j]='/0' 这句赋值语句相当于你给一个地址赋了2个值,应该这样,t[j]='/' t[j+1]='0'

热点排行