PHP中的字符串为什么要转义
答案:3 悬赏:0 手机版
解决时间 2021-02-01 17:26
- 提问者网友:箛茗
- 2021-01-31 19:03
PHP中的字符串为什么要转义
最佳答案
- 五星知识达人网友:山有枢
- 2021-01-31 20:37
主要是为了安全,防止sql注入,防止程序出错中断运行
全部回答
- 1楼网友:笑迎怀羞
- 2021-01-31 22:05
为了安全,为了不出现乱码
- 2楼网友:等灯
- 2021-01-31 21:46
我觉得这些问题,作为初学还是有点价值的,要是自己能思考至找到答案就更好了。
1、首先,你输入的\0是作为2个字符,即\和0,而'\0'则是一个字符。
例如 char c='\0';
例如 char s[]="abcd\0efe";实际上相当于
char s[10] = { 'a', 'b', 'c', 'd', '\\', '0', 'e', 'f', 'e', '\0'};
其中'\\'就是转义字符用来表示字符\。
类似的例如'\"'表示但引号",你试想一下例如输出printf("\"")就是输出一个单引号,但是printf(""")程序就会报错了,因为"不是成对出现的,它不知道做什么。
这下你知道转义字符的必要性了吧。
字符串都会以'\0'来表示结尾,
例如 char s[] = { 'a', 'b', 'c', '\0', 'd'};如果你printf(s)只会看到abc,因为遇到了'\0'的字符串结尾标志。
这下你知道字符串结尾标志'\0'的含义了吧.
2、执行scanf不止是遇到\n就结束,遇到tab键 空格键也会结束,这里却是没有那么多为什么。当然要是深究的话确实该了解该函数的本质。
3、因为有时候你不用getchar吸收的话,那个回车会被放到下一个要输入的地址中。我不知道你是否getchar函数的本意,吸收回车只是他的一个功能,它就是接受键盘任意字符,不止是回车,之所以用它来吸收回车,是因为要输入数据遇到回车就结束了,而这个回车可能被下一个输入吸收,所以用一个getchar先吸收掉。
4、scanf("%s",str); 输入字符串遇到空格就结束了。如果你不想这样的话可以用gets()函数,实例:
char str[100];
get(str);
int a=strlen(str);
printf("%d\n",a);
printf("%s\n",str);
没有仔细看,结尾看到你说都大三了,这个确实有点
我觉得c,还没有很值得这样细扣,倒是抓紧学c++,然后扣细点。
有问题还可以问。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯