// // main.c // 字符串 // // Created by zhangxueming on 15/6/5. // Copyright (c) 2015年 zhangxueming. All rights reserved. // #include <stdio.h> #include <ctype.h> //字符操作函数 //int isalnum(int); //int isalpha(int); //int isdigit(int); //int isgraph(int); //int islower(int); //int isupper(int); //int isxdigit(int); //int tolower(int); //int toupper(int); //int digittoint(int); //int ishexnumber(int);//等同于 isxdigit //int isnumber(int);//等同于 isdigit //int main(int argc, const char * argv[]) { // // printf("isalnum = %d ", isalnum('a'));//判断是否为字母或者数字字符 // printf("isalpha = %d ", isalpha('A'));//判断是否为英文字母字符 // printf("isdigit = %d ", isdigit('8'));//判断是否为十进制数字字符 // printf("isgraph = %d ", isgraph(' '));//判断是否为可见字符 // printf("islower = %d ", islower('a'));//判断是否为小写字母 // printf("isupper = %d ", isupper('A'));//判断是否为大写字母 // printf("isxdigit = %d ", isxdigit('F'));//判断是否为十六进制字符 // printf("tolower = %c ", tolower('A'));//把大写字母转换成小写字母 // printf("toupper = %c ", toupper('a'));//把小写字母转换成大写字母 // printf("digittoint = %d ", digittoint('f'));//把十六进制字符转换成整型 // return 0; //} //字符串 //"hello world" //1.字符串中的每一个字符占1个字节 //2.字符串必须用""包含 //3.字符串的末尾必须要有' ' //4.打印字符串用%s占位符,只需要传递字符串的首地址 //5.字符串可以用字符数组存储或者存储在堆内存中 //int main(int argc,const char *argv[]) //{ // char str[]="hello world";//省约数组的长度 必须初始化数组 // printf("size = %lu ", sizeof(str)); // printf("%s ", str); // return 0; //} //int main(int argc, const char *argv[]) //{ // char str1[]="hello world"; // char *str2 ="hello world"; // // str1[5]='A'; // //*(str2+5) = 'A';//str2指针指向字符串常量, 不能修改字符串常量 // printf("str1 = %s ", str1); // printf("str2 = %s ", str2); // return 0; //} //字符串的长度(字符串的有效长度,有效长度不包含' ') //"hello world" #include <string.h> //unsigned long <==> size_t //size_t strlen(const char *src); size_t mystrlen(const char *src) { int i=0; while (src[i]) { i++; } return i; } //int main(int argc,const char *argv[]) //{ // char str1[]="hello world"; // // printf("size = %lu ", sizeof(str1)); // // printf("length = %lu ", mystrlen(str1)); // // return 0; //} //字符串拷贝函数 //char *strcpy(char *dest, const char *src); //注意:dest指针指向的内存空间足够容纳src字符串 //char *strncpy(char *dest, const char *src, size_t n); //dest:目的缓冲区 //src: 源字符串 //n: 最多拷贝的字符个数 char *mystrcpy(char *dest, const char *src) { int i=0; while (src[i]) { dest[i]=src[i]; i++; } dest[i]='