字符串
字符串就是一串字符 - 用双引号括起来的一串字符
1 2 3 4 5 6 7 8 9
| int main() { char arr[] = "abc"; printf("%s\n", arr); return 0; }
|
注意:字符串的结束标志是一个 \0 的转义字符。在计算字符串长度时 \0 是结束标志,不算作字符串内容
1 2 3 4 5 6 7 8 9 10 11
| int main() { char arr[] = "abc"; char arr1[] = { 'a','b','c' }; char arr2[] = { 'a','b','c','\0'}; printf("%s\n", arr); printf("%s\n", arr1); printf("%s\n", arr2); return 0; }
|
求字符串长度
通过strlen()
来计算字符串的长度
使用strlen()
时,需要先引用头文件string.h
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| #include <string.h> int main() { char arr[] = "abc"; char arr1[] = { 'a','b','c' }; char arr2[] = { 'a','b','c','\0'}; int len = strlen("abc"); printf("%d\n", len); printf("%d\n", strlen(arr)); printf("%d\n", strlen(arr1)); printf("%d\n", strlen(arr2)); return 0; }
|
转义字符
转变了字符原有的意思
转义字符 |
意义 |
? |
在书写连续的多个问号时使用,防止他们被解析成三字母词 |
\‘ |
用于表示字符常量 ‘ |
\“ |
用于表示一个字符串内部的双引号 |
\\ |
用于表示一个反斜杠,防止它被解析为一个转义序列符 |
\a |
警告字符,蜂鸣 |
\b |
退格符 |
\f |
进纸符 |
\n |
换行 |
\r |
回车 |
\t |
水平制表符 |
\v |
垂直制表符 |
\ddd |
ddd表示1~3个八进制的数字。 如:\130 X |
\xdd |
dd表示2个十六进制的数字,如:\x30 0 |
1 2 3 4 5 6 7 8 9 10 11 12
| int main() { printf("c:\test\test.c"); printf("ab\ncd"); printf("(are you ok??)"); printf("%c\n", '\''); return 0; }
|
\ddd和\xdd
1 2 3
| printf("%c\n", '\130'); printf("%c\n", '\101'); printf("%c\n", '\x30');
|
应用
1 2
| printf("%d\n", strlen("c:\test\328\test.c"));
|
答案:14
选择语句
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| int main() { int input = 0; printf("你要好好学习吗 1.是 2.否:"); scanf("%d", &input); if (input == 1) { printf("好好学习\n"); } else { printf("不好好学习\n"); } return 0; }
|
循环语句
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| int main() { int line = 0; while (line<300) { printf("写代码%d\n" ,line); line++; } if (line == 300) { printf("很棒\n"); } return 0; }
|
函数
1 2 3 4 5 6 7 8 9
| int main() { int num1 = 0; int num2 = 0; scanf("%d %d", &num1, &num2); int sum = num1 + num2; printf("%d\n", sum); return 0; }
|
如何运用函数来求两个数字的和呢
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
|
Add(int x,int y) { int z = 0; z = x + y; return z; } int main() { int num1 = 0; int num2 = 0; scanf("%d %d", &num1, &num2); int sum = Add(num1,num2); printf("%d\n", sum); return 0; }
|
数组
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| int main() { int arr[10] = {1,2,3,4,5,6,7,8,9,10}; char ch[5] = { 'a','b','c' }; int i = 0; while (i<10) { printf("%d\n",arr[i]); i++; } return 0; }
|
那么如果我没有给数组定义一个长度,并传入值,他的长度会是多少呢
1 2 3 4 5 6
| int main() { char ch[] = { 'a','b','c' }; printf("%d\n", strlen(ch)); return 0; }
|