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