c语言trim函数源码 c语言strcmp函数

C语言 如何利用trim函数出除字符串头尾的指定字符

1、trim()方法返回调用字符串对象的一个副本,但是所有起始和结尾的空格都被删除了,例子如下:String s=" Hello World ".trim();就是把"Hello World"放入s中。

创新互联公司主要从事成都网站建设、成都网站制作、网页设计、企业做网站、公司建网站等业务。立足成都服务五龙口,10年网站建设经验,价格优惠、服务专业,欢迎来电咨询建站服务:13518219792

2、例程:

void trim(char* s, char c)

{

char *t  = s;

while (*s == c){s++;};

if (*s)

{

char* t1 = s;

while (*s){s++;};

s--;

while (*s == c){s--;};

while (t1 = s)

{

*(t++) = *(t1++);

}

}

*t = 0;

}

int main()

{

char mm[] = "**hello word!**";

trim(mm, '*');

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

}

用c语言编写程序实现将两个有序的文件进行合并,同时将生成的新文件输出到屏幕上,

#include "stdafx.h"

#include string.h

#include stdio.h

#include stdlib.h

struct STUDENT{

int Number;

char Name[32];

int  Class;

float Score;

};

#define IS_WHITE(ch) ((unsigned char)ch=15 || ch==' ')

//trim函数去除字符串str前后的空白字符

char *trim(char *str)

{

char ch;

char *p, *q, *r;

p=str; q=str; r=str-1;

while(1)

{

ch=*p;

if (!IS_WHITE(ch)) break;

if (ch==0) break;

p++;

}

while(1)

{

ch=*p++;

*q=ch;

if (ch==0) break;

if (!IS_WHITE(ch)) r=q;

q++;

}

*++r=0;

return str;

}

int InputStudent(const char *filename)

{

FILE *f;

int n;

char str[200];

struct STUDENT student;

f=fopen(filename,"wb");

if (f==NULL) return 0;   //返回0表示失败

for (n=0; ; ++n)

{

printf("请输入学号: "); scanf("%d", student.Number);

if (student.Number==0) break;

while(1)

{

printf("请输入姓名:");  gets(str);

trim(str);

if (str[0]==0) continue; //确保姓名不为空

strncpy(student.Name, str, sizeof(student.Name)-1);

//上句确保输入姓名长度不超过31字节

break;

}

printf("请输入班级:\n"); scanf("%d", student.Class);

printf("请输入成绩:\n"); scanf("%f", student.Score);

fwrite(student, sizeof(student),1, f);

//      printf("%08d %-32s %-3d %f\n",

//          student.Number,

//          student.Name,

//          student.Class,

//          student.Score);

}

fclose(f);

return n;   //返回有多少个学生信息录入

}

void SortStudent(struct STUDENT *student, int n)

{

int i,j;

struct STUDENT *a, *b, t;

for (j=0; jn-1; ++j)

{

a=student+j;

for (i=j+1; in; ++i)

{

b=student+i;

if (a-Number=b-Number) continue; //否则交换

memcpy(t,a,sizeof(struct STUDENT));

memcpy(a,b,sizeof(struct STUDENT));

memcpy(b,t,sizeof(struct STUDENT));

}

}

}

void PrintStudent(const struct STUDENT *student, int n)

{

int i;

for (i=0; in; ++i, ++student)

printf("%08d %-32s %-3d %6.1f\n",

student-Number,

student-Name,

student-Class,

student-Score);

}

void main()

{

int n1, n2, n;

struct STUDENT *student;

const char fn1[]="d:\\student1.bin"; //文件1

const char fn2[]="d:\\student2.bin"; //文件2

const char fn[]="d:\\student.bin";   //合并后的文件

FILE *f;

printf("学生信息录入(录入过程中,学号输入为0,则退出录入)\n");

printf("第一步:%s中的学生信息录入:\n", fn1);

n1=InputStudent(fn1);

if (0==n1)

{

printf("%s中的学生信息录入有误,退出程序\n",fn1);

return;

}

printf("第二步:%s中的学生信息录入:\n", fn2);

n2=InputStudent(fn2);

if (0==n2)

{

printf("%s中的学生信息录入有误,退出程序\n",fn2);

return;

}

printf("第三步:合并%s, %s\n",fn1,fn2);

student=(struct STUDENT *)malloc((n1+n2)*sizeof(struct STUDENT));

f=fopen(fn1,"rb");

if (f==NULL) {printf("%s打开失败,退出程序\n",fn1); return;}

n=fread(student,sizeof(struct STUDENT), n1, f);

fclose(f);

if (n!=n1) {printf("%s读入错误,退出程序\n",fn1); return;}

f=fopen(fn2,"rb");

if (f==NULL) {printf("%s打开失败,退出程序\n",fn2); return;}

n=fread(student+n1,sizeof(struct STUDENT), n2, f);

//  PrintStudent(student,n1+n2);  //输出学生信息

fclose(f);

if (n!=n2) {printf("%s读入错误,退出程序\n",fn2); return;}

n=n1+n2;

SortStudent(student,n);

f=fopen(fn,"wb");

if (f==NULL) {printf("%s建立失败,退出程序\n",fn); return;}

fwrite(student, sizeof(struct STUDENT), n, f);

fclose(f);

PrintStudent(student,n);  //输出学生信息

free(student);

}

C语言trim函数的实现

楼主你好。

这是一个trim尾部的函数。

int mytrim(char s[])

{

int i=mystrlen(s)-1; //首先,i指向字符串最后一个字符

for(;i=0;i--) //在i=0(也就是在字符串内部)的情况一下一直循环。

if(s[i]!='\t's[i]!='\r's[i]!='\n') //若当前字符s[i]不是'\t'、'\r'、'\n'则跳出循环(说明找到了结尾处的第一个有意义的字符,'\t''\r''\n'都是需要被trim的字符)

break;

s[i+1]='\0'; //在s[i+1]出放置一个字符串结束符'\0'。

return i;

}

比如一个字符串char str[]="abc\r\n",经过mytrim之后就变成了"abc"。

希望对你有帮助,有不懂的可以追问我。

c语言去掉字符串的空格函数trim

c语言去掉字符串的空格函数 void trim(char *s){} 如下:

#include stdio.h

void trim(char *s){

int i,L;

L=strlen(s);

for (i=L-1;i=0;i--) if (s[i]==' ')strcpy(s+i,s+i+1);

}

int main(){

char s[100];

printf("input 1 line string\n");

gets(s);

trim(s);

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

return 0;

}

例如:

input 1 line string

abc 123 XYZ |

输出:abc123XYZ|


网站栏目:c语言trim函数源码 c语言strcmp函数
本文来源:http://myzitong.com/article/dojdicd.html