Android_NDK C字符串基本操作
字符串长度
void main(){
char arr[] = {'a','a','a','a','a','\0'};
printf("%s",arr);
}
字符串结尾是\0,也就是字符串长度数据要比数组长度少1。
void main(){
char *str = "aaaaaa";
printf("%s",str);
}
和上面的区别就是下面的不能修改。
void main(){
char *str = "aaaaaa";
printf("%d",strlen(str));
}
使用strlen方法获取字符串长度。
字符串类型转换为别的类型
整型
void main(){
char *str = "15";
int num = atoi(str);//如果转换失败返回0,如果数字后有其他不是数字的,会剔除
}
Float
void main(){
char *str = "15.0";
float num = atof(str);//如果转换失败返回0.0000000,如果数字后有其他不是数字的,会剔除
}
Double
void main(){
char *str = "15.0";
double num = atotod(str,NULL);//如果转换失败返回0.0000000,如果数字后有其他不是数字的,会剔除
}
字符串比较
void main(){
char *str = "Darren";
char *str1 = "darren";
int re = strcmp(str,str1);//返回0就是相等。区分大小写
int re1 = strcasecmp(str,str1);//不区分大小写
int re2 = strncmp(str,str1,5);//比较前5个字符是否相等
}
字符串查找拼接
查找
void main(){
char *str = "Darren";
char *str1 = "ren";
char *re = strstr(str,str1);//返回第一次出现的位置(位置指针),没找到返回NULL
int pos = re - str;//通过指针操作找到位置
int contains = *re == NULL;//通过返回指针是否为空,判断是否包含。
}
copy
void main(){
char *str = "Darren";
char cpy[20];
strcpy(cpy,str);
}
拼接
void main(){
char *str = "Darren";
char *st1 = " is";
char cpy[20];
strcpy(cpy,str);
strcat(cpy,st1);
}
截取
char * substr(char* str,int start,int end){
//最好不要用malloc
int len = end-start+1;
char res[len];
int i = 0;
for(;i<len;i++){
res[i] = str[i+start];
}
res[len-1]='\0';
return res;
}
void main(){
char *str = "Darren is";
char *sub = substr(str,3,5);
}
大小写转换
void toLower(char * dest ,char * origin){
while(*origin != '\0'){
*dest = tolower(*origin);
dest++;
origin++;
}
*dest = '\0';
}
void main(){
char *str = "Darren";
char stres[20];
toLower(stres,str);
}
字符串替换
char * str_replace(char * str,char * or,char * re){
char * pos = strstr(str,or);
if(!pos){
return str;
}
int newStrLen = strlen(str) - strlen(or) + strlen(re);
char res[newStrLen];
char * start = substr(str,0,pos-str);
char * end = substr(str,pos+strlen(or),strlen(str));
strcpy(res,start);
strcat(res,re);
strcat(res,end);
return str_replace(res,or,re);
}
void main(){
char *str = "aabbccaabbaabb";
char *res = str_replace(str,"aa","ddd");
}

本文详细介绍了在Android NDK环境下进行字符串的基本操作,包括计算长度、类型转换(整型、浮点型、双精度型)、比较、查找、复制、拼接、截取和大小写转换。同时,还展示了如何实现字符串替换的方法。这些基础知识对于Android原生开发至关重要。
2919

被折叠的 条评论
为什么被折叠?



