IOS-C_Day11___字符串

2015.2.2

#include <stdio.h>

#include <ctype.h>

//字符操作的函数

//int     isalnum(int);

//int     isalpha(int);

//int     isdigit(int);

//int     isgraph(int);

//int     islower(int);

//int     ispunct(int);

//int     isspace(int);//判断是否为空格

//int     isupper(int);

//int     isxdigit(int);

//int     tolower(int);

//int     toupper(int);

//int     digittoint(int);

//int     ishexnumber(int);

//int     isnumber(int);

//int main(int argc, const char * argv[]) {

//

//    printf("isalnum = %d\n", isalnum(‘a‘));//判断是否为数字字符或者英文字母

//    printf("isalpha = %d\n", isalpha(‘*‘));//判断是否为英文字母

//    printf("isdigit = %d\n", isdigit(‘&‘));//判断是否为数字字符

//    printf("isgraph = %d\n", isgraph(‘\n‘));//判断是否为可见字符

//    printf("islower = %d\n", islower(‘*‘));//判断是否为小写字母

//    printf("ispunct = %d\n", ispunct(‘;‘));//判断是否为标点符号

//    printf("isupper = %d\n", isupper(‘A‘));//判断是否为大写字母

//    printf("isxdigit = %d\n", isxdigit(‘a‘));//判断是否为十六进制字符

//    printf("tolower = %c\n", tolower(‘A‘));//转换成小写字母

//    printf("toupper = %c\n", toupper(‘a‘));//转换成大写字母

//    printf("digittoint = %d\n", digittoint(‘F‘));//把十六进制字符转换成整型数据

//    printf("ishexnumber = %d\n", ishexnumber(‘9‘));//跟isxdigit函数相同

//    printf("isnumber = %d\n", isnumber(‘9‘));//跟isdigit函数相同

//    return 0;

//}

//字符串

//"hello world"

//1.双引号包含

//2.字符串中的每个元素占用一字节内存空间

//3.字符串末尾有隐藏字符‘\0‘

//

//打印字符串用%s 跟要打印字符串的首地址相对应

//存储字符串用字符数组,或者申请的内存

//gets() //输入一个字符串

//puts() //输出一个字符串

//int main(int argc,const char *argv[])

//{

//    char str[12]="hello world";

//    printf("%s\n", str);//%s打印字符串遇到‘\0‘结束

//

//    char str2[100];

//    gets(str2);//遇到‘\n‘结束

//    puts(str2);

//

//    return 0;

//}

//char str1[100]="hello world"

//char *str2="hello world";

//int main(int argc,const char *argv[])

//{

//    char str1[100]="hello world";

//    char *str2="hello world";//str2指向常量区, 常量区的内容是只读的,不可以被修改

//

//    //*str2 = ‘a‘;

//    str1[0]=‘a‘;

//    printf("%s\n", str1);

//    return 0;

//}

//字符串长度(通常指字符串有效长度)

//"hello world"

//有效长度不包含字符串末尾的‘\0‘

//sizeof strlen

//区别:

//1.sizeof 是一个运算符, strlen是一个函数

//2.sizeof 求变量或者常量占用内存空间大小, strlen 求字符串有效字符个数,操作对象是字符串

//3.sizeof 运算符是编译层次的概念, strlen函数是运行层次的概念

#include <string.h>

//size_t <==> unsigned long

//size_t my_strlen(const char *src)

//{

//    if (!src) {

//        return 0;

//    }

//    int len=0;

////    while (*src != ‘\0‘) {

////        len++;

////        src++;

////    }

//    for (;*src;) {

//        len++;

//        src++;

//    }

//    return len;

//}

//

//int main(int argc, char *argv[])

//{

//    char str[100]="qian feng";

//    char *pstr = str;

//    printf("%ld\n", sizeof(str));

//

//    printf("%ld\n", my_strlen(str));

//

//    printf("%ld\n", sizeof(pstr));//求的是指针变量占用的内存空间大小

//    printf("%ld\n", strlen(pstr));

//

//    return 0;

//}

//字符串比较函数

//int strcmp(const char *, const char *);

//int strncmp(const char *, const char *, size_t);

//size_t : 限制最大比较字符个数

//返回值 大于0    str1 > str2

//      等于0    str1 == str2

//      小于0    str1 < str2

//int my_strcmp(const char *str1, const char *str2)

//{

//    while (*str1==*str2 && *str1 && *str2) {

//        str1++;

//        str2++;

//    }

//    return *str1-*str2;

//}

//

//int main(int argc,const char *argv[])

//{

//    char *str1 = "abcdefgh";

//    char *str2 = "abc";

//

//    int ret = my_strcmp(str1, str2);

//    printf("ret = %d\n", ret);

//

//    ret = strncmp(str1, str2, 7);

//    printf("ret = %d\n", ret);

//

//    return 0;

//}

//字符串查找

//strchr

//char *strchr(const char *, int);

//从左往右查找字符在原字符串中第一次出现的位置,找不到返回NULL

//strrchr

//char *strrchr(const char *, int);

//倒序查找字符, 找到第一次出现的位置返回,找不到返回NULL

char *my_strchr(const char *src, char ch)

{

while (*src) {

if (*src==ch) {

return (char *)src;

}

src++;

}

return NULL;

}

char *my_strrchr(const char *src, char ch)

{

size_t len = strlen(src);

for (long i=len; i>=0; i--) {

if (*(src+i)==ch) {

return (char *)(src+i);

}

}

return NULL;

}

//int main(int argc,const char *argv[])

//{

//    char *str = "hello world";

//

//    printf("%s\n", my_strchr(str, ‘o‘));

//

//    printf("%s\n", my_strrchr(str, ‘o‘));

//

//

//    return 0;

//}

//字符串拷贝

//char *strcpy(char *dest, const char *src);

//dest 跟 src指向的内存不能有重叠的部分

//dest 空间足够容纳src字符串

//char *strncpy(char *dest, const char *src, size_t len);

//len 限定最多可以向dest缓冲区中拷贝的字符个数

//len = sizeof(dest)-1

char *my_strcpy(char *dest, const char *src)

{

char *temp = dest;

while (*src) {

*temp = *src;

temp++;

src++;

}

*temp = ‘\0‘;

return dest;

}

char *my_strncpy(char *dest ,const char *src, size_t     len)

{

size_t i=0;

char *temp = dest;

while (*src && i<len) {

*temp = *src;

temp++;

src++;

i++;

}

if (i<len) {

*temp = ‘\0‘;

}

return dest;

}

//int main(int argc, const char *argv[])

//{

//    char dest[100]="qianfengABCDEF";

//    char *src = "helloworld";

//    //printf("%s\n", my_strcpy(dest, src));

//    //printf("%s\n", dest);

//  //  printf("%s\n", strcpy(dest, &dest[4]));//strcpy 操作的字符串内存不能重叠

//

//    printf("%s\n", my_strncpy(dest, src, 100-1));

//    return 0;

//}

//字符串拼接

//char *strcat(char *dest, const char *src);

//1.确定dest剩余的内存空间足够容纳src字符串

//char *strncat(char *dest, const char *src, size_t len);

//len = sizeof(dest)-strlen(dest)-1;

//len 允许最多可以拼接到dest缓冲区中的字符个数,拼接后,在新的字符串的末尾添加‘\0‘;

char *my_strcat(char *dest, const char *src)

{

size_t len = strlen(dest);

int i=0;

while (*src) {

*(dest+len+i)= *src;

src++;

i++;

}

*(dest+len+i)=‘\0‘;

return dest;

}

char *my_strncat(char *dest ,const char *src, size_t     len)

{

size_t i=0;

size_t size = strlen(dest);

char *temp = dest+size;

while (*src && i<len) {

*temp = *src;

temp++;

src++;

i++;

}

*temp = ‘\0‘;

return dest;

}

//int main(int argc,const char *argv[])

//{

//    char dest[21]="hello world";

//    dest[20]=‘A‘;

//    dest[16]=‘W‘;

//    char *src = "qian feng";

//    //printf("%s\n",my_strcat(dest, src));

//

//    printf("%s\n",my_strncat(dest, src,4));

//

//    return 0;

//}

//字符串分割

//strtok

//char *strtok(char *src, const char *demi);

//int main(int argc,const char *argv[])

//{

//    char src[100]="root:qian;:feng,:jiao;yu";

//    char *ps = strtok(src, ";,:");//底层把分割符变成‘\0‘

//    printf("%p %s\n",ps,ps);//分割符一定用双引号包含,哪怕只有一个字符

//    printf("%p %s\n",src,src);

//

//    ps = strtok(NULL, ":;,");

//    printf("%s\n", ps);

//

//    ps = strtok(NULL, ":;,");

//    printf("%s\n", ps);

//

//    ps = strtok(NULL, ":;,");

//    printf("%s\n", ps);

//

//    ps = strtok(NULL, ":;,");

//    printf("%s\n", ps);

//

//    return 0;

//}

//int main(int argc,const char *argv[])

//{

//    char str[100]="root:qian;:feng,:jiao;yu";

//

//    char *pstr = str;

//    while ((pstr = strtok(pstr, ":;,"))) {

//        printf("%s\n",pstr);

//        pstr = NULL;

//    }

//

//    return 0;

//}

//查找子串

//strstr

//char *strstr(const char *src, const char *subStr);

//返回子串在原串中第一次出现的地址,原串中没有该子串返回NULL

char *my_strstr(const char *src, const char *substr)

{

char *sub = (char *)substr;

while (*src) {

char *temp = (char *)src;

while (*src++ == *substr++) {

if (*substr == ‘\0‘) {

return temp;

}

}

src = temp+1;

substr = sub;

}

return NULL;

}

//int main(int argc,const char *argv[])

//{

//    char src[100]="hello wwworldqian world feng";

//    printf("%s\n", my_strstr(src, "world"));

//

//    return 0;

//}

//"qianarefengarejiaoareyu"

//"are"

//qian feng jiao yu

//int main(int argc,const char *argv[])

//{

//    char str[100]="qianarefengarejiaoareyu";

//    char *p,*q;

//    p = q = str;

//    int len = strlen("are");

//    while ((p = strstr(p, "are"))) {

//        *p = ‘\0‘;

//        printf("%s\n",q);

//        p+= len;

//        q = p;

//    }

//    if (*q) {

//        printf("%s\n", q);

//    }

//    return 0;

//}

//sscanf sprintf

//int sscanf(const char * , const char * , ...)

//int sprintf(char * , const char * , ...);

int main(int argc,const char *argv[])

{

char str[100]="$GPGGA,4250.5589,S,14718.5084,E";

char header[100]={};

char ch1, ch2;

float south;

float east;

sscanf(str, "%6s,%f,%c,%f,%c",header,&south,&ch1,&east,&ch2);

printf("%.2f %.2f\n", south, east);

char buf[100];

sprintf(buf, "%d***%d",12,45);

printf("%s\n", buf);

return 0;

}

时间: 2024-12-20 07:32:28

IOS-C_Day11___字符串的相关文章

iOS 判断字符串中含有某个字符串rangeOfString

//_roaldSearchText if([roadTitleLab.text rangeOfString:@"格力"].location !=NSNotFound) NSLog(@"yes"); else NSLog(@"no"); iOS 判断字符串中含有某个字符串rangeOfString,布布扣,bubuko.com

ios 判断字符串为空和只为空格解决办法

ios 判断字符串为空和只为空格解决办法- (BOOL)isBlankString:(NSString *)string{ if (string == nil) { return YES; } if (string == NULL) { return YES; } if ([string isKindOfClass:[NSNull class]]) { return YES; } if ([[string stringByTrimmingCharactersInSet:[NSCharacterS

iOS根据字符串计算UITextView高度

iOS计算字符串高度,有需要的朋友可以参考下. 方法一:ios7.0之前适用 /** @method 获取指定宽度width,字体大小fontSize,字符串value的高度 @param value 待计算的字符串 @param fontSize 字体的大小 @param Width 限制字符串显示区域的宽度 @result float 返回的高度 */ - (float) heightForString:(NSString *)value fontSize:(float)fontSize a

ios 常用字符串的操作

//将NSData转化为NSString        NSString* str = [[NSString alloc] initWithData:response encoding:NSUTF8StringEncoding];//将NSString 转化为NSData (NSString.h)- (NSData *)dataUsingEncoding:(NSStringEncoding)encoding; //载一个字符串中删除一个字符或字符串[_display deleteCharacte

iOS依据字符串计算UITextView高度

iOS计算字符串高度,有须要的朋友能够參考下. 方法一:ios7.0之前适用 /** @method 获取指定宽度width,字体大小fontSize,字符串value的高度 @param value 待计算的字符串 @param fontSize 字体的大小 @param Width 限制字符串显示区域的宽度 @result float 返回的高度 */ - (float) heightForString:(NSString *)value fontSize:(float)fontSize a

ios NSString字符串如何转为NSNumber(已解决)

今天同事问我 NSString字符串如何转为NSNumber,思考了一下解决了 思路:先将字符串转为NSInteger类型,再通过NSNumber的创建方法@(数字)即可实现 NSString * str = @"890909"; // 字符串转为NSInteger类型 NSInteger num = [str integerValue]; NSLog(@"%li",num); // 字符串转为NSNumber对象类型 NSNumber * nums = @(num

iOS 获取字符串中的单个字符

要取到单个字符,就要知道字符串的编码方式,这样才能够定位每个字符在内存中的位置.但是,iOS的字符串编码是不固定的,因此,需要设置一个统一的编码格式,将所有其他格式的字符串都转化为统一的格式,然后就可以根据编码规则取到单个字符了.在这里,使用UTF-8编码.UTF-8编码的使用范围比较广泛,客户端与服务器之间传输的数据大多以UTF-8编码. 关于UTF-8的详细说明可以Wiki下:UTF-8. 下图是UTF-8编码的格式: 开发的流程大概是: 将NSString字符串转成UTF-8格式的char

iOS开发 字符串

iOS开发之玩转字符串 (转) 这是另一个收藏的超链接 来自SegmentFault 大神的精品 下面这是一些常用的方法和属性 记得不牢所以收藏下 //一.NSString /*----------------创建字符串的方法----------------*/ //1.创建常量字符串.NSString *astring = @"This is a String!"; //2.创建空字符串,给予赋值.NSString *astring = [[NSString alloc] init]

IOS 时间字符串转换时间戳失败问题

链接:https://pan.baidu.com/s/1nw6VWoD 密码:1peh 有时候获取到的时间带有毫秒数或者是(2018-2-6 11:11:11)格式的(别说你没遇到过,也别什么都让后台转好给你,程序员就是在长跑,短时间内看不出什么,但一年两年后,有的人成了大神,有的人却还是只会切图),这样的字符串在ie11和IOS系统上jquery的getTime()无法将其转为时间戳(谷歌,安卓(华为)可以). 本宝宝致力于高版本IE网站,和移动端H5网页小游戏(比如答题游戏,大转盘等等)开发

ios 替换字符串中的部分字符串

1.使用NSString中的stringByTrimmingCharactersInset:[NSCharacterSet whitespaceCharacterSet]方法去掉左右两边的空格: 2.使用NSString中的stringByReplacingOccurrencesOfString:@"我" withString @"你"],用来把字符串中的所有我替换成你.