1. c語言中把文件中的空格去除
第一種:使用位域限制讀取的長度;
第二種:可以直接按照結構體來讀寫;
實例代碼如下:
#include"stdafx.h"
#include<cstdio>
#include<cstdlib>
#include<cstring>
structRoommate{
charname[6];
charNO[8];
charaddr[10];
};
int_tmain(intargc,_TCHAR*argv[])
{
structRoommateRom[2]={0};
FILE*file=NULL;
if(!(file=fopen("a.txt","w"))){
printf("CreateFilefailed! ");
exit(-1);
}
printf(":NameNOAddr ");
for(inti=0;i<2;++i){
scanf("%s%s%s",Rom[0].name,Rom[0].NO,Rom[0].addr);
fwrite((constvoid*)&Rom[0],sizeof(structRoommate),1,file);
}
fclose(file);
/*Readfromfile*/
file=NULL;
if(!(file=fopen("a.txt","r"))){
printf("CreateFilefailed! ");
exit(-1);
}
printf("Readfromthefile:NameNOAddr ");
fread((void*)Rom,sizeof(structRoommate),2,file);
for(inti=0;i<2;++i){
printf("i=%dName:%s NO:%s Addr:%s ",i,Rom[i].name,Rom[i].NO,Rom[i].addr);
}
fclose(file);
while(getchar());
return0;
}
2. C語言完善程序,刪除字元串中的所有空格
*p='\0'或則str[i]='\0'的意思還得從上面的那個循環開始說起,while(*P)何時才為假嗎?必須當p指向字元版串的結尾標志才行,權也就是p指向了'\0',於是*p=0,於是循環退出,循環裡面就是把空格去掉,這里的去掉的方法是把以前空格的位置用*p對其賦值,*P的值是空格後的字元,例如ab
cd
efg'\0'後來會變為abcdefg為什麼這里沒有'\0',那是因為還沒來得及賦值給它就已經退出循環了,所以必須再循環後面加個'\0'。字元串一定要有'\0'做結尾標志,這個就不用說了
3. c語言 字元串去掉空格
//修改如下:
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
voidtrimSpace(char*instr,char*outstr){
inti=0;
intj=0;//因為去掉空格後的字元串的字元個數和去掉空格之前不一樣,需要額外增加一個變數用來標記下標。
for(i=0;i<(int)strlen(instr);i++)
{
if((int)(*(instr+i))==32)
{
continue;
}
else{
*(outstr+j)=*(instr+i);
j++;
}
printf("%c",*(outstr+i));//這個位置可以列印出來去掉空格之後的字元串
}
*(outstr+j)='