字符串函数
关于字符串有好多常用的函数需要我们理解,掌握这些对于我们对于字符串的利用有着很大的帮助,一起来看看吧!
strlen函数
主要是求字符串的长度,代码简单,也好理解,直接从例题进行理解.
如下面例题:
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include <assert.h>
//====strlen函数实例(长度)
int strlen(const char * str){ //定义函数
if (*str == '\0') //当检索到的为\0时,输出0
return 0;
else
return 1 + strlen(str + 1); //如果不是,则循环调用函数,并且每次加一,直到检索到\0
}
int main(){
char arr[] = { "bhkasbf" };
char* temp = &arr; //字符型指针,并将arr数组的地址赋给这个指针
printf("%d\n", strlen(temp)); //调用函数并进行整型输出
system("pause");
return 0;
}
函数简单,多看看就行,不做过多的解释.
strcpy函数
合法性校验是防止用户输入了一个不在范围内的值,直接结束,防止代码过长而耗费时间.
自定义一个函数,在合法性校验合格的时候进行1对1的传值就可以了.
如下面例题:
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include <assert.h>
//====strcpy函数实例(复制)
char* strcpy(char * dest, const char *source){
char * ret = dest;
assert(dest != NULL); //合法性校验,若为空,直接结束程序
assert(source != NULL);
while ((*dest++ = *source++)){ //一一赋给
;
}
return ret;
}
int main(){
char arr1[] = "abcd"; //注意在赋值字符串的时候在""和{}二选一!!!
char arr2[5] = { '\0' }; //注意,进行将字符串拷贝的时候,首先要赋予被拷贝的字符串足够大的空间
char* temp1 = arr1; //否则字符无法赋进去,会出现终断问题
char* temp2 = arr2;
printf("%s\n", temp1);
printf("%s\n", strcpy(temp2, temp1)); //显示拷贝完的值
system("pause");
return 0;
}
相对于简单,重在理解哈,多敲敲代码就可以.加油!