使用字串概念移除多餘空格的 C 程式。
問題
在執行時,透過使用 while 迴圈檢查每個字元索引處的空格,從輸入的字串中移除所有多餘的空格。
解決方案
考慮以下示例:
它會移除給定字串中的所有空格。給定的字串是 **Tutorials Point C Programming**。移除空格後的結果是 **TutorialsPointCProgramming**。
字元陣列稱為字串。
以下是字串的宣告:
char stringname [size];
例如,char string[50]; 長度為 50 個字元的字串。
初始化
- 使用單字元常量。
char string[10] = { ‘H’, ‘e’, ‘l’, ‘l’, ‘o’ ,‘\0’}- 使用字串常量。
char string[10] = “Hello”:;
訪問
使用控制字串“%s”訪問字串,直到遇到‘\0’。
我們用來移除字串之間多餘空格的邏輯如下:
len = strlen(string);
for(i=0; i<len; i++){
if(string[0]==' '){
for(i=0; i<(len-1); i++)
string[i] = string[i+1];
string[i] = '\0';
len--;
i = -1;
continue;
}
if(string[i]==' ' && string[i+1]==' '){
for(j=i; j<(len-1); j++){
string[j] = string[j+1];
}
string[j] = '\0';
len--;
i--;
}
}示例
以下是使用字串概念移除句子中所有多餘空格的 C 程式:
#include<stdio.h>
int main() {
char string[200];
int i, j, len;
printf("Enter a statement: ");
gets(string);
len = strlen(string);
for(i=0; i<len; i++) {
if(string[0]==' ') {
for(i=0; i<(len-1); i++)
string[i] = string[i+1];
string[i] = '\0';
len--;
i = -1;
continue;
}
if(string[i]==' ' && string[i+1]==' ') {
for(j=i; j<(len-1); j++) {
string[j] = string[j+1];
}
string[j] = '\0';
len--;
i--;
}
}
printf("
New String after removing extra spaces is = %s", string);
getch();
return 0;
}輸出
當執行上述程式時,它會產生以下輸出:
Enter a statement: Welcome to The world of C programming New String after removing extra spaces is = Welcome to The world of C programming
廣告
資料結構
網路
關係資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP