鹏哥C语言笔记8-9---字符串和转义字符

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>

// -----------------------------------------------------------------4.字符串+转义字符

//------------------------------------------------------------------4.1字符串
/*
-----------------------------------------------字符串定义


由双引号引起来的一串字符成为字符串字面值,是常量
"abcde"
"hello bit.\n"


字符串的  结束标志  放了一个 \0 转义字符


*/


//int main()
//{
//    // char 字符类型
//    //  'a'单引号引起来叫一个字符
//    //  "abcde" 双引号引起来叫一个字符串
//    //  C语言中没有    字符串类型
//    char ch = 'w'; //ch是一个字符变量  'w'是一个字符
//    
//    return 0;
//}

//----------------------------------------------存储字符串

//int main()
//{
//    char arr1[10] = { "abcde" };
//    //把abcdef放到  arr[]中
//    //当不确定后边字符的大小时,数组[]里的数值可以不写
//    char arr2[] = {'a','b','c','d','e','\0'};//  \0 结束标志
//    printf("%s\n",arr1);//  %s  打印字符 
//    printf("%s\n",arr2);
//
//    return 0;
//}


//----------------------------------------结束标志 \0

//int main()
//{
//    char arr1[10] = { "abcde" };
//    char arr2[] = {'a','b','c','d','e','\0'};//  \0 结束标志
//    return 0;
//}


//------------------------------------------------------------------4.2  转义字符
/*

转义字符  就是 转变原来字符的意思 
n---------\n
0---------\0

*/

//int main()
//{
//    printf("abcnfe");
//    printf("abc\nfe");//    \n-----换行标志
//
//    printf("abc0df");
//    printf("abc\0df");  //  \0-----结束标志
//
//    return 0;
//}

/*-----------------------------------------------------------------规定的转义字符

\?------------在书写连续多个问号时使用,防止他们被解析成三字母词
\'------------用于表示字符常量 ’
\"------------用于表示一个字符串内部的双引号
\\------------用于表示一个反斜杠,防止被解释为一个序列符
\a------------警告字符蜂鸣
\b------------退格符
\f------------进纸付
\n------------换行
\r------------回车
\t------------水平制表符
\v------------垂直制表符
\ddd----------ddd表示1-3个八进制的数字,例如:\130X
\xdd----------dd表示两个16进制数字,例如:\x30 

*/

//------------------------------------------------------------------         \?

//int main()
//{
//    printf("%s\n","(are you ok??)");
//    //早期打印出来的是(are you ok],  系统会把  ??)三字母词   打印成   ]
//    printf("%s\n","(are you ok\?\?)");
//    //所以把 ? 写成 \?  ,现在不需要了
//    return 0;
//}


//-------------------------------------------------------------------         \'

//int main()
//{
//    printf("%c\n",'\''); //  %c  打印字符  %s  打印字符串
//    return 0;
//}


//-------------------------------------------------------------------         \"
//int main()
//{
//        printf("abcde\n");
//        printf("%s\n","abcde");
//        printf("a\n");
//        printf("\"\n");
//
//    return 0;
//}


//-------------------------------------------------------------------         \\

//   int main()
//{
//    printf("abcd\0ef");
//    printf("abcd\\0ef");
//    return 0;
//}

   //int main()
   //{
      // printf("c:\test\test.c\n");
      // printf("c:\\test\\test.c\n");

      // return 0;
   //}

//-------------------------------------------------------------------         \n

//int main()
//{
//    printf("abc\ned");
//    return 0;
//}


//------------------------------------------------------------------ -         \t

//int main()
//{
//    printf("abcde\n");
//    printf("abc\tde");//   \t相当于一个空格
//    return 0;
//}

//------------------------------------------------------------------ -         \ddd
//ddd是三个八进制的数值

//int main()
//{
//    printf("%c\n", '\130');//打印一个字符 八进制130=十进制88,88对应的ASCLL码值的字符为 X
//    //输出X
//    return 0;
//}

//------------------------------------------------------------------ -         \xdd
//dd是两个十六进制数值

//int main()
//{
//    printf("%c\n", '\x23');//
//    return 0;
//}


//--------------------------------------------------------------------------练习1

//int main()
//{
//    printf("%d\n", strlen("swee t"));//输出结果为?  6
//    return 0;
//}

//--------------------------------------------------------------------------练习2

int main()
{
    printf("%d\n", strlen("c:\test\628\test.c"));//输出结果为?  14
    //为啥不是13?
    //\ddd,ddd是八进制字符,8不是八进制里的
    return 0;
}

// strlen() 求字符串的长度

  • 17
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值