使用字符串概念移除多余空格的 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