C语言中如何判断是不是合法转义字符?

如题所述

'\0'是八进制的转移字符,如果看到:\087这就是非法的,'\0x'表示十六进制,还有一些必备的如:'\n','\r'这些。

和普通的字符判断相同,比如判断和'a'是否相同,ch=='a',那么判断转义一样,如ch=='\n',逻辑表达式的结果只有两个,true和false,所有的逻辑表达式都一样,为真就是true,否则就是false。

#include<stdio.h>

int main(){

char a[20]="abc\'efgh";

int i=0;

for(i=0;i<20;i++){

if(a[i]=='\\'&&a[i+1]=='\'')

printf("true,%d",i);

if(a[i]=='\'')

printf("false");

if(a[i]==0){

printf("%d",i);

break;

数据类型关键字

short:修饰int,短整型数据,可省略被修饰的int。(K&R时期引入)

long:修饰int,长整型数据,可省略被修饰的int。(K&R时期引入)

long long:修饰int,超长整型数据,可省略被修饰的int。(C99标准新增)

signed:修饰整型数据,有符号数据类型。(C89标准新增)

unsigned:修饰整型数据,无符号数据类型。(K&R时期引入)

restrict:用于限定和约束指针,并表明指针是访问一个数据对象的初始且唯一的方式。(C99标准新增)

复杂类型关键字

struct:结构体声明。(K&R时期引入)

union:联合体声明。(K&R时期引入)

enum:枚举声明。(C89标准新增)

typedef:声明类型别名。(K&R时期引入)

sizeof:得到特定类型或特定类型变量的大小。(K&R时期引入)

inline:内联函数用于取代宏定义,会在任何调用它的地方展开。(C99标准新增)

温馨提示:答案为网友推荐,仅供参考
第1个回答  2021-06-10

分为两类

一个是固定字母的,比如 \t \n

另一类就是通用的,包括8进制 16进制

8进制的 \ooo 后面的ooo是1到3个合法的8进制字符。

16进制 \xhh 后面的hh是1到2个合法的16进制字符。

符合以上的就是合法的,否则非法。

控制字符:

转义字符不属于控制字符;控制字符也不属于转义字符。如果控制字符的定义是非图形的字符,或者对输出设备(打印机、文本终端)有特殊意义的字符,那么针对这些设备的转义字符也是控制字符。但是程序设计用的转义字符是图形字符,因此它们不是控制字符。相反地,大多数ASCII控制字符单独都具有控制功能,因此它们不是转义字符。

以上内容参考:百度百科-转义字符

本回答被网友采纳
第2个回答  推荐于2017-10-11
以下是实例:
\a 响铃
\b 退格
\f 换页
\n 换行
\r 回车
\t 水平制表
\v 垂直制表
\\ 反斜线字符''\'
\? 问号“?”
\' 单引号(撇号)字符
\" 双引号字符

\0 空字符(NULL)
\ddd 三位八进制
\xhh 二位十六进制
总的转义符就这些啦,
所谓合法的,就是符合以上形式的转义符,除此之外的均不是,比如\ba,这就是先退格再让a覆盖在上面,而不是先退格再响铃,凡是碰到反斜杠“\”就要警惕了,看看有没有以上所述的转义,若没有基本上是错的;
还要注意的是如果输入的是\其他英文字母(不在上述之列),输出的会是ASCII码(具体参见ASCII码对照表)

下面的实例可以帮助您理解转义符:
#include <stdio.h>
int main(void)
{
printf("12345678901234567890\n"); /*参考数据*/
printf("abc\tdef\n"); /*转移符使用*/
printf("abc\tde\bf\n");
printf("abc\tde\b\rf\n");
printf("abc\"def\"ghi\?\n");
printf("整数98\n"); /*转移符数制*/
printf("八进制表达整数98是 \142\n");
printf("十六进制表达整数98是\x62\n");
return 0;
}本回答被提问者和网友采纳
第3个回答  2012-11-30
A) '\"' B) '\1011' C) '\011' D) '\abc'

'\\' '\' '\f' '\101'

'\xf' '\a' '\}' 'x1f'

2.下面4个选项中,均是正确的八进制数和十六进制数的选项是: 这个我还真无法判断了

A) -10 B) 0abc C) 0010 D) 0a12

0X8f -017 -0x11 -0x123

-011 0xc 0xf1 -0xa

3.下面4个选项中,均是非法常量的选项是: 为什么是选 A, '\0xa'应该是合法的吧

A) 'as' B) '\\' C) -0x18 D) 0xabc

-0fff '\01' 01177 '\0'

'\0xa' 12,456 0xf "a"
第4个回答  2012-11-29
提问能再具体点吗,合法转义字符? 你想判断什么?实现什么?
相似回答