C++去除输入行中空白的方法

时间:2021-10-31 03:31:29

本文实例讲述了C++去除输入行中空白的方法。分享给大家供大家参考。具体实现方法如下:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
/*
* 删除每个输入行末尾的空格及制表符, 并删除完全是空格的行
*/
#include <stdio.h>
//每一行存放不超过1000个字符,最多输入不超过1000行
#define MAX 1000
int getline(char line[],int limit);
main()
{
 int nn;
 int i=0,j,k;
 char line[MAX];
 char saveline[MAX][MAX];
 while((nn = getline(line,MAX) ) > 0 ){
   if(i < MAX){
    for(j = 0;j < MAX;j++){
    /* 把满足条件的行保存到二维数组中 */
     saveline[i][j] = line[j];
    }
    i++;
   }
 }
 printf("The new line is:\n");
 for(k = 0;k < i;k++){
  printf("%s",saveline[k]);
 }
}
int getline(char vline[],int vlimit)
{
 int ch;
 int i=0;
 int j=0;
 while(((ch = getchar()) != EOF) && (ch != '\n')){
  if(i < (vlimit - 1)){
   vline[j] = ch;
   j++;
  }
  i++;
 }
 if(ch == '\n'){
  while((' ' == vline[--j]) || ('\t' == vline[--j]) ){
   i--;
  }
  vline[j] = ch;
  j++;
  i++;
 }
 vline[j] = '\0';
 return i;
}

希望本文所述对大家的C++程序设计有所帮助。