C语言 字符串(计算长度、统计字符个数、复制、连接、删除)核心代码全网最强汇总!

索引(均为指针函数调用形式)

一、计算字符串长度方法一方法二

二、统计字符个数三、字符串复制方法一方法二

四、 字符串连接五、字符串删除

一、计算字符串长度

方法一

核心代码:

char *p=s;

while(*p!='\0'){ //等同于 *p

p++;

}

return p-s;

案例:计算字符串的长度

#include

int length(char *s){

char *p=s;

while(*p!='\0'){ //等同于 *p

p++;

}

return p-s;

}

void main(){

char s[32];

printf("请输入一个字符串:");

gets(s);

printf("长度为:%d",length(s));

}

方法二

核心代码:

char *p=s;

while(*p++);

return p-s-1;

案例:计算字符串的长度

#include

int length(char *s){

char *p=s;

while(*p++);

return p-s-1;

}

void main(){

char s[32];

printf("请输入一个字符串:");

gets(s);

printf("长度为:%d",length(s));

}

二、统计字符个数

核心代码:

length=strlen(s);

for(i=0;i

if(s[i]>='0'&&s[i]<='9'){

count++;

}

}

案例:统计字符串中的数字字符个数

#include

#include

void string_num(char s[]){

int i,length=0,count=0;

length=strlen(s);

for(i=0;i

if(s[i]>='0'&&s[i]<='9'){

count++;

}

}

printf("数字字符有%d个",count);

}

void main(){

int i,count=0;

int length=0;

char s[32];

printf("请输入一个字符串:");

gets(s);

string_num(s);

}

三、字符串复制

方法一

核心代码:

while(*s1=*s2){

printf("%c",*s1);

s1++;

s2++;

}

案例:利用指针函数调用实现字符串s2复制给s1

#include

void strcpy_s(char *s1,char *s2){

printf("字符串s1为:");

while(*s1=*s2){

printf("%c",*s1);

s1++;

s2++;

}

}

void main(){

char s1[32];

char s2[32];

printf("请输入字符串s1:");

gets(s1);

printf("请输入字符串s2:");

gets(s2);

strcpy_s(s1,s2);

}

方法二

核心代码:

while(*s1++=*s2++);

案例:利用指针函数调用实现字符串s2复制给s1

#include

void strcpy_s(char *s1,char *s2){

while(*s1++=*s2++);

}

void main(){

char s1[32];

char s2[32];

printf("请输入字符串s1:");

gets(s1);

printf("请输入字符串s2:");

gets(s2);

strcpy_s(s1,s2);

printf("字符串s1为:");

printf("%s",s1);

}

四、 字符串连接

核心代码:

while(*s1){

s1++;

}

while(*s1++=*s2++);

案例:利用指针函数调用实现两个字符串连接

#include

void strcat_s(char *s1,char *s2){

while(*s1){

s1++;

}

while(*s1++=*s2++);

}

void main(){

char s1[80];

char s2[80];

printf("请输入字符串s1:");

gets(s1);

printf("请输入字符串s2:");

gets(s2);

strcat_s(s1,s2);

printf("字符串s1为:%s\n",s1);

printf("字符串s2为:%s",s2);

}

五、字符串删除

核心代码:

for(i=0;s[i];i++){

if((s[i]<'a'||s[i]>'z')&&(s[i]<'A'||s[i]>'Z')){

s[n++]=s[i];

}

}

s[n]='\0';

案例:删除字符串中的所有大小写字母

#include

void string_dele(char s[]){

int n=0,i;

for(i=0;s[i];i++){

if((s[i]<'a'||s[i]>'z')&&(s[i]<'A'||s[i]>'Z')){

s[n++]=s[i];

}

}

s[n]='\0';

printf("删除大小写字母后:%s",s);

}

void main(){

char s[32];

printf("请输入一个字符串:");

gets(s);

string_dele(s);

}