c语言实现trim函数的简单介绍

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

#include "stdafx.h"

我们提供的服务有:成都做网站、成都网站设计、成都外贸网站建设、微信公众号开发、网站优化、网站认证、瓮安ssl等。为上1000家企事业单位解决了网站和推广的问题。提供周到的售前咨询和贴心的售后服务,是有科学管理、有技术的瓮安网站制作公司

#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

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|

trim函数怎么用的

trim是修剪、整理的意思。

各种 trim 函数的语法如下:

LTRIM(字串):将字串左边的空格移除。

RTRIM(字串): 将字串右边的空格移除。

TRIM(字串): 将字串首尾两端的空格移除,作用等于RTRIM和LTRIM两个函数共同的结果。

ALLTRIM(字串):将字串左右边两边的空格移除。

在EXCEL中,TRIM函数主要用于把单元格内容前后的空格去掉,但并不去除字符之间的空格。如果单元格中有从其他程序中获得带有不规则空格的文本是,可以使用TRIM函数。

1. 如下图所示,在B1中录入TRIM(A1),可以看到,B1中还是A1单元格内容,只是前面空格去除了,但是中间的单元格依然在。向下拉,既可以把整个A列单元格中前后无用的单元格去掉了。如下图所示,BW在B1中录入TRIM(A1),可以看到,B1中还是A1单元格内容,只是前面空格去但是中间的单元格依然在。向下拉,既可以把整个A列单元格中前后无用的单元格去掉了。

2.如果是想要去掉所有的空格,需要用substitute函数。如图所示:

3.如果单元格里的数据或文本同时带无意义空格和空白行,那么也可以用公式:= Clean(trim()) 嵌套就可以直接删除了。

4.TRIM函数作为辅助函数,还有另外一种用法,如图在A1中(A1常规状态)录入12位以上数字,A1就会以科学计数的方式显示出来,这不是我们想要的结果,我们想要B1所示的结果,这时, 我们在B1单元格输入公式:=TRIM(A1),回车,就可以看到全部显示出来了。

5.当然,我们也可以更改单元格格式为:数字,或者自定义格式“0”,都可以显示,如图:

6.下面,我们再来学习一下TRIM的另一种用法---和MID函数结合提取有用的信息,如图,在B1中需要提取A1单元格中的生产年限,我们可以在B1单元格中录入公式:TRIM(MID(A1,FIND("",A1),4)),就可以得到想要的结果。

可以同时删除字符串前导和尾部空白的函数是什么?

trim(  )函数移除字符串两侧的空白字符或其他预定义字符。

一段计算机程序代码,函数的出现主要是解决了程序代码共享问题,最初的计算机程序是顺序执行的。

如果在一个程序工多个程序中需要实现同一种计算,这时实现同样计算的代码就会出现多次,而使用函数则不同,把该种计算封装在函数中,在需要使用的地方调用该函数即可,常见的DLL动态链接库,就是将若干函数封装起来,并且为调用者(宿主程序)提供服务,以实现代码共享!

一般是编程里面的概念,也叫做‘方法’。一般一个函数可以完成一个功能或本身是多个功能的集合。

计算机里的函数是指编译器内部做好的实现某个功能的一段代码,在使用时可以用很简单的语句就实现一个很复杂的操作。

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

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

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);

}

急!简单的编程问题,用trim()实现去空格。

这是VB里的一个函数,VB是完全的可视化编程,不象VC那样有固定的结构套路.因此不需要像VC那样包含什么,加上什么主函数!

下面程序,将"hellow ward"中的左右空格去掉后,输出到label标签上:

dim s as string

s="hellow ward"

s = trim(s) '用trim去除字符串左右的空格

label1.caption = s '输出到label1上显示……

************************

#include "stdio.h"

#include "conio.h"

#include "string.h"

char* trim(char *s)/*trim函数用来去除空格*/

{

char b[100];

int i,j=0;

for(i=0;istrlen(s);i++)

if(s[i]!=' ')

b[j++]=s[i];

return b;

}

void main()

{

char a[100],*b;

gets(a);

b=trim(a);

puts(b);

getch();

}

这是纯C实现的trim()去除字符串的空格.已经在Wintc下调试通过.因为C本身没有这个trim函数,VB有!


网页标题:c语言实现trim函数的简单介绍
文章源于:http://scjbc.cn/article/hpsjce.html

其他资讯