当前位置: 代码迷 >> 综合 >> 华科16_2
  详细解决方案

华科16_2

热度:57   发布时间:2023-09-22 23:24:14.0

题目:

输入字符串。

1.去除前面的空格

2.中间多个空格只保留一个

3.相邻的数字和字母之间加上'_'

分析:

输入整个字符串,因为做的操作要改变字符串中间的内容,为了避免大量移动字符串中的字符,所以另外设置一个字符串用来输出结果

去除前面的空格可以用一个标志变量来标志是否在前面。

中间空格也采用标志变量来表示中间需要去除的空格,记得每一次中间去除完要重置变量,以便之后的去除。

第三问就比较简单了。

代码:

#include <iostream>  
#include <stdio.h>   
#include <string.h>  
#include <math.h>  
#include <vector>  
#include <queue>  
#include <stack>  
#include <map>  
#include <string>  
#include <algorithm>  
#include <iomanip>
#define MAX 1000
using namespace std;/* run this program using the console pauser or add your own getch, system("pause") or input loop */bool isNumber(char c){if(c>= '0' && c<= '9'){return true;}else{return false;}
}
bool isLetter(char c){if(c>= 'a' && c<= 'z'){return true;}else{return false;}
}
//void insert(char * str,int index){
//	
//}void display(char *input,int start,int end) {for(int i=start;i<= end;i++){printf("%c",input[i]);}printf("\n");
}
int main(int argc, char** argv) {/*freopen("file/input.txt","r",stdin);freopen("file/output.txt","w",stdout);*/char input[MAX];char output[MAX];int size=0;gets(input);int length=strlen(input);bool front=true;bool middle=true;for(int i=0;i<length;i++){//1.过滤前面的空格if(front == true){if(input[i] == ' ') {continue;}else{front = false;  //遇到非空格字符则结束前面的过滤 output[size++] = input[i];}}else{//2.中间多个空格进行合并  只保留一个空格 if(input[i] == ' ' && middle == true) {output[size++] = input[i] ;middle = false;   }if(input[i] == ' ' && middle == false) {continue;}if(input[i] != ' '){middle = true;  //重置middle }output[size++] = input[i];if((isNumber(input[i]) && isLetter(input[i+1])) ||  (isNumber(input[i+1]) && isLetter(input[i])) ) {output[size++] = '_';			}}	//output[size++] = input[i];} 
//	for(int i=0;i<size-1;i++){
//		//3.数字和字母之间添加_
//			if((isNumber(output[i]) && isLetter(output[i+1])) ||  (isNumber(output[i+1]) && isLetter(output[i])) ) {
//				insert(output,i);  //在i位置插入_ 
//			}
//	}display(output,0,size-1);return 0;
}//对字符串前后进行处理则可以用前后cur来表示 , 若对字符串的中间部分做修改删除则另建一个数组 


  相关解决方案