程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> Delphi >> 面試題目搜集

面試題目搜集

編輯:Delphi

1.字符串取出多余的空格,包括行首的空格,單詞與單詞之間只能有多余的空格,結尾不能有空格。

例如:“    i am     lsj     ”  ==》“i am lsj”


[cpp] 
#include<iostream>  
#include<cctype>  
using namespace std; 
 
void deleteSpace(char* str) 

    char *ptr = str; 
    bool flag = true; 
    while(isspace(*str++));//去除字符串開始的空格  
    --str; 
    while(*str){ 
        if(isalpha(*str)){ 
            if(ptr != str)//防止同一個空間賦值  
                *ptr++ = *str; 
            flag = true; 
        } 
        else{ 
            if(flag){ 
                *ptr++ = *str; 
                flag = false; 
            } 
        } 
        str++; 
    } 
    ptr--;//ptr已經被加1了,特別注意  
    if(isspace(*ptr)) //去除結尾的空格  
        *ptr = '\0'; 
    else 
        *++ptr = '\0'; 
}; 
 
int main() 

    char str[]="  i am lsj   ";  
    //這裡不能定義,這樣定義" i am lsj"就是在字符串常量區分配空間  
    //即不能對str進行操作,在deleteSpace中也不能通過ptr賦值了  
    //系統編譯報錯  
    //char *str="  i am lsj   ";   
    cout<<str<<endl; 
    deleteSpace(str); 
    cout<<str<<":The end"<<endl; 
    system("pause"); 
    return 0; 

#include<iostream>
#include<cctype>
using namespace std;

void deleteSpace(char* str)
{
 char *ptr = str;
 bool flag = true;
 while(isspace(*str++));//去除字符串開始的空格
 --str;
 while(*str){
  if(isalpha(*str)){
   if(ptr != str)//防止同一個空間賦值
    *ptr++ = *str;
   flag = true;
  }
  else{
   if(flag){
    *ptr++ = *str;
    flag = false;
   }
  }
  str++;
 }
 ptr--;//ptr已經被加1了,特別注意
 if(isspace(*ptr)) //去除結尾的空格
  *ptr = '\0';
 else
  *++ptr = '\0';
};

int main()
{
 char str[]="  i am lsj   ";
 //這裡不能定義,這樣定義" i am lsj"就是在字符串常量區分配空間
 //即不能對str進行操作,在deleteSpace中也不能通過ptr賦值了
 //系統編譯報錯
 //char *str="  i am lsj   ";
 cout<<str<<endl;
 deleteSpace(str);
 cout<<str<<":The end"<<endl;
 system("pause");
 return 0;
}

 

 

 

 

 

 

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved