(2) 下面程序接收来自键盘的输入,直到输入<Ctrl>+Z(值为-1)键为止。这些字符被原样输出,但若有连续一个以上的空格时只输出一个空格。请填空。 #include <stdio.h> void main() {char cx; char front=' '; while ( ① ) {if (cx!=' ') putchar(cx); if (cx= =' ') if (front!=' ') putchar(cx); ② } }
时间: 2024-03-06 09:50:47 浏览: 20
以下是填空后的C语言代码:
```c
#include <stdio.h>
void main() {
char cx;
char front = ' ';
while ((cx = getchar()) != EOF) { // 填空处1
if (cx != ' ') {
putchar(cx);
}
if (cx == ' ')
if (front != ' ') {
putchar(cx);
} // 填空处2
front = cx;
}
}
```
在这段代码中,我们使用了一个while循环来不断读入键盘输入的字符,直到遇到<Ctrl>+Z为止。在循环体中,使用了两个if语句来实现空格去重的功能。如果当前字符不是空格,则直接输出当前字符。如果当前字符是空格,则判断前一个字符是否为非空格,如果是,则输出当前字符。最后将当前字符赋值给front变量,用于下一次循环的比较。
相关问题
用C语言编写,接下面程序接收来自键盘的输入,直到输入<Ctrl>+Z(值为-1)键为止。这些字符被原样输出,但若有连续一个以上的空格时只输出一个空格
以下是一个实现该功能的C语言代码:
```c
#include <stdio.h>
int main() {
int c;
int prev_space = 0; // 标识前一个字符是否为空格
while((c = getchar()) != EOF) {
if(c == ' ') {
if(prev_space == 0) { // 如果前一个字符不是空格
putchar(c); // 输出当前字符
prev_space = 1;
}
} else {
putchar(c); // 输出当前字符
prev_space = 0;
}
}
return 0;
}
```
在这段代码中,我们使用了一个while循环来不断读入键盘输入的字符,直到遇到<Ctrl>+Z为止。在循环体中,使用了一个变量prev_space来标识前一个字符是否为空格,初始值为0。如果当前字符是空格,则判断前一个字符是否为非空格,如果是,则输出当前字符,并将prev_space设为1。如果当前字符不是空格,则直接输出当前字符,并将prev_space设为0。这样就能保证连续出现的多个空格只输出一个空格。
C语言电文翻译;有一行电文,按下列规律译成密码:A<-->Z a<-->z B<-->Y b<-->y
可以使用C语言实现电文翻译,具体实现方法如下:
1. 定义一个字符串变量,作为输入的电文字符串,例如:"Hello World!"。
2. 使用for循环遍历电文字符串中的每一个字符,将其与对应的密码字符进行替换,然后将替换后的字符添加到一个新的字符串中,例如:将大写字母A替换成大写字母Z、将小写字母a替换成小写字母z,这样就得到了加密后的密码字符串。
3. 最后输出加密后的密码字符串,例如:"Svool Dliow!"。
示例代码如下:
```c
#include <stdio.h>
#include <string.h>
#define MAX_LEN 100
int main() {
char message[MAX_LEN];
printf("请输入需要翻译的电文:");
fgets(message, MAX_LEN, stdin);
int len = strlen(message);
char password[MAX_LEN];
for (int i = 0; i < len; i++) {
char c = message[i];
if (c >= 'A' && c <= 'Z') {
password[i] = 'Z' - c + 'A';
} else if (c >= 'a' && c <= 'z') {
password[i] = 'z' - c + 'a';
} else {
password[i] = c;
}
}
printf("翻译后的密码是: %s\n", password);
return 0;
}
```
当您问我您在前面对我说了什么时,我的回答是:为什么大家都喜欢和7在一起呢?因为7 8 9(音乐响起)