一.指针概念
《c 程序设计语言》 是这样描述 : ”指针是一种保存变量地址的变量“,指针是一个特殊的变量,它里面存储的数值被解释成为内存里的一个地址,指针与地址不要混在一起,指针是存储地址一个变量,地址是内存分配。指针可以指向这个内存地址,也可以指向另一个内存地址,当指针指向一个内存地址,它们之间才发生联系,通过这个指针去操作这块内存。
1).字符指针
char str[10] ="abcd";
printf("%s\n",str);
printf("%s\n",&str[0]);
char str2[10] = "abc\0d";
printf("%s\n",str2);
char ch[6]={'a','a','s','n','x'};
printf("%s\n",ch);
return 0;
//2.以%S进行输入
char input[20];
scanf("%s",input);
printf("%s\n",input);
//注意 %s格式输入的时候遇到空格,就结束了
//字符数组长度
char str[]="abc";
printf("%ld\n",sizeof(str)/sizeof(char));//结果为 4
%s输出字符直到遇到'\0'结束
2).不安全写法没有'\0'结束
char ch[] = {'a','b','c'};//存在高地址
char ch2[] = {'x','y','z'};//低地址
printf("%s\n",ch2);//结果xyzabcabc
char ch3[] = {'u','v','\0'};
printf("%s\n",ch3);//结果uv
3).字符数组长度 恰巧等于了数组在内存中占用的字节数
char str[]="abc";//4
printf("%ld\n",sizeof(str)/sizeof(char));//结果为 4
//字符数组长度
char str1[]="abc\0989";//8
printf("%ld\n",sizeof(str1)/sizeof(char));//结果为 8
//1、使用字符串函数
printf("%ld\n",strlen(str1));
//2.以'\0'作为条件,进行判断遇到'\0'结束
int count = 0 ;
while (str1[count]!='\0') {
count ++ ;
}
printf("count = %d\n",count);
4).连接字符串strcat
char str2[200]="welcometo ";
char str3[100]="shenzhen!";
strcat(str2, str3);//str2要足够大能够保存 str3
puts(str2);
因为代码在return0 ;后出现图片错误
5).字符串的比较函数
int result =strcmp(str2,ch);//返回22大于0说明str2和 ch不同单词首字母的ACSII码值大于 ch
printf("strcmp(%s,%s)= %d\n",str2 ,ch,result);
// c10计算大写字母出现的次数
//
// Created by CHINGWEI_MACPC on 15/10/26.
// Copyright © 2015年 itcast. All rights reserved.
//
#include<stdio.h>
int main(intargc,const char* argv[]) {
char str[100]="Asss QQQ09UUsaA";
int count = 0 ,capitalLetters = 0 ;
while (str[count]!='\0') {
if (str[count]+32 >= 97 &&str[count]+32 <= 122) {
capitalLetters++;
}
count++;
}
printf("一共有 %d 个大写字母.\n ",capitalLetters);
return 0;
}
#include<stdio.h>
int main(intargc,const char* argv[]) {
char str[100];
gets(str);
int spaceInt = 0 ,count = 0 ,flag = 0 ;
while (str[count]!='\0') {
if (str[count]==' ') {
spaceInt++;
flag = 0 ;
}
else if(flag== 0){
str[count]=str[count]-32;
flag = 1 ;
}
count++ ;
}
puts(str);
return 0;
}
二.地址概念
存储