一、字符串的輸入與輸出
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