一、字符串的輸入與輸出
1.保存字符串要用數組
2.‘0’即‘\0’
3.C語言自定了函數 atoi();功能:將數字字符串轉化成相應的數字;遇到非數字的字符即停止;可以判斷正負
4.將數字字符轉化成相應的數字 :str[i] - ‘0’;(str[] 是保存字符串的數組)
5.數字轉換成相應字符串的方法:num + ‘0’
6.獲取字符串的三種方法
[code] #include<stdio.h> int main() { int i = 0; char src[100]; char ch; //方法一scanf();這種方法有缺陷,即只能獲取不帶 空格的字符串 printf("請輸入一個字符串:\n"); scanf("%s",src); //可以改進scanf("%[^\n]",src); //%[^EOF]可以控制輸入到EOF的時候停止 printf("scr = %s\n",src); getchar(); //此處添加getchar();上次輸入帶來的'\n'垃圾值 //方法二gets();可以獲得句子字符串 //危險函數,使用gets可以無限輸入 printf("請輸入一個字符串:\n"); gets(src); printf("src = %s\n",src); //方法三getchar(); //使用getchar();可以一個字符一個字符的輸入 //當字符串超出規定長度,報錯,自動截取 printf("請輸入一個字符串:\n"); while((ch = getchar()) != '\n') { src[i] = ch; i++; if(i == 9)//字符串規定長度為9 { printf("error!"); break; } } src[i] = '\0'; printf("src = %s\n",src); return 0; }6.實例:將字符串轉化成對應的整數,要求模仿C語言自帶函數atoi的功能
[code]//實現將字符串轉化成對應的數字 #include<stdio.h> #include<string.h> #define MAX_SIZE 100 int my_atoi(char *str) { int i = 0; int flag = 1; int result = 0; int len; len = strlen(str); //處理字符串的首個字符為'-'的問題 if(str[0] == '-') { flag = -1; i = 1; } for(;i < len;i++) { if((str[i] >= '0' && str[i] <= '9')) { result = result * 10 + (str[i] - '0'); } else //當遇到的字符不是數符的時候,停止循環 { break; } } return result * flag; } int main() { char str[MAX_SIZE]; int result; printf("please enter a string:\n"); scanf("%s",str); printf("str = %s\n",str); result = my_atoi(str); printf("result = %d\n",result); return 0; }二、格式化輸入
1.格式化就是按照scanf中給定的格式輸入,否則就會出錯
2.%d 整型
%c 字符型
%f float型
%lf double型
%s 字符串型
%p 地址
三、數組的輸入輸出
1.數組名:代表數組的地址,是常量,不可以進行自加自減
2.數組首元素的地址代表數組的地址
3.數組輸入輸出的方式
4.int *p = a;(a是數組名)//p是變量可以進行自加自減
[code]//數組的輸入輸出 #include<stdio.h> int main() { int i; int a[3]; int *p = a; printf("輸入數組的值:\n"); for(i = 0;i < 3;i++) { scanf("%d",&a[i]); //scanf("%d",a + i); //scanf("%d",p++); } printf("輸出數組的值:\n"); for(i = 0;i < 3;i++) { printf("a[%d] = %d\n",i,*(a + i)); //printf("a[%d] = %d\n",i,a[i]); //printf("a[%d] = %d\n",i,*p));p++; } return 0; }四、printf的注意事項
1.printf是行緩沖,最後要加 ‘\n’ 才能輸出
2.scanf 與 printf 使用的是同一個緩沖區,所以當printf後面有scanf時也可以輸出
3.程序執行完成後要清理緩沖區
☆ 程序中要返回局部變量地址時,加static 以防止出錯
五、i++ & ++i
1.i++是使用完(遇到結束標志),再自加一
2.++i是先加一,再使用
3.例:
i = 2;
num = (i++)+(i++)+(i++)+(i++);
//num = 8 i = 6
num = (++i)+(++i)+(++i)+(++i);
//num = 19 i = 6
4.函數是從右邊開始傳參,且;,( 都是結束標志
規律:++i,被替換成變量名i
i++,被替換成數值
變量名i,依然是i
f(++i,++i,i++,++i,i++);
//7,7,4,7,2
f(i++,++i,i,i++,++i);
//5,6,6,3,6