字符串空格的压缩:给定一个字符串,将其中连续出现的空格压缩为1个后,将其中已空格分隔的每个字符串逆序打印出来

3/3/2017来源:C/C++教程人气:2419

#include <stdio.h> #include <stdlib.h> #include <string.h> /*题目:字符串空格的压缩:给定一个字符串,将其中连续出现的空格压缩为1个后,将其中已空格分隔的每个字符串逆序打印出来。 总体思想是用二维数组将每一被空格分隔的字符串拿出来; 之后用一个count记录空格个数即可,对空格个数为1的特殊处理;多余空格忽略即可 */ void reverseStr(char str[],int left,int right) { while(left<right){ char temp=str[left]; str[left]=str[right]; str[right]=temp; left++; right--; } } int main() { char str[99]="abc djksa eio"; char ans[99][99]={{0}}; int m=0,n=0; int count=0;//临时记录每个间隔空格个数 int strLength=strlen(str); for(int i=0;i<strLength;++i){ if(str[i]!=' '){ count=0; ans[m][n]=str[i]; n++; } else{ count++; if(count==1){ ans[m][n]='\0'; m++; n=0;//关键,易忘 } } } for(int p=0;p<=m;++p){ int ansLength=strlen(ans[p]); reverseStr(ans[p],0,ansLength-1); PRintf("%s ",ans[p]); } return 0; }