#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语言去掉字符串的空格函数 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 函数的语法如下:
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动态链接库,就是将若干函数封装起来,并且为调用者(宿主程序)提供服务,以实现代码共享!
一般是编程里面的概念,也叫做‘方法’。一般一个函数可以完成一个功能或本身是多个功能的集合。
计算机里的函数是指编译器内部做好的实现某个功能的一段代码,在使用时可以用很简单的语句就实现一个很复杂的操作。
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);
}
这是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有!