下列程序用来对从键盘上输入的两个字符串进行比较,然后输出两个字符串中第一个不相同字符的ASCII码之差。例如:输入的两个字符串分别为abcdef和abceef,则输出为-1。请填空。 #include <stdio.h> #include <string.h> void main() { char str1[100],str2[100],c; int i,s; printf("\n input string 1:\n"); gets(str1); printf("\n input string 2:\n"); gets(str2); i=0; while((str1[i]==str2[i])&&(str1[i]!= 输入答案 )) i++; s= 输入答案 ; printf("%d\n",s); }
时间: 2024-01-22 21:03:01 浏览: 63
答案:
```
#include <stdio.h>
#include <string.h>
void main() {
char str1[100],str2[100],c;
int i,s;
printf("\n input string 1:\n");
gets(str1);
printf("\n input string 2:\n");
gets(str2);
i=0;
while((str1[i]==str2[i])&&(str1[i]!='\0'))
i++;
s= str1[i]-str2[i];
printf("%d\n",s);
}
```
解析:
1. 在比较字符串时,应该判断两个字符串中是否有一个到达了字符串的结尾(即 `\0`),所以第一个空格应该填 `\0`。
2. 计算两个字符串第一个不相同字符的 ASCII 码之差,只需要将两个字符相减即可。
3. 注意输入字符串时,应该使用 `fgets` 替代 `gets` 函数,以避免缓冲区溢出的问题。
相关问题
用C++编写下列程序:编写函数void fun(char *a),该函数实现的功能是:将字符串a中除前导和尾部连续的*之外,其余的*全部删除。例如字符串:***a*b**,处理后为:***ab**。在main函数中,从键盘输入带*且无空格的字符串,调用fun函数处理字符串,并将处理后的字符串输出到屏幕上。说明:不得使用系统提供的字符串函数。
以下是实现该程序的C++代码:
```c++
#include <iostream>
#include <cstring>
using namespace std;
void fun(char *a) {
int len = strlen(a);
int left = 0, right = len - 1;
while (left < len && a[left] == '*') left++; // 找到第一个非*字符的位置
while (right >= 0 && a[right] == '*') right--; // 找到最后一个非*字符的位置
int i, j;
for (i = left, j = left; i <= right; i++) {
if (a[i] != '*') {
a[j] = a[i];
j++;
} else if (i > 0 && a[i - 1] != '*') {
a[j] = a[i];
j++;
}
}
a[j] = '\0'; // 字符串末尾加上结束符
}
int main() {
char str[100];
cout << "请输入带*且无空格的字符串:";
cin >> str;
fun(str);
cout << "处理后的字符串为:" << str << endl;
return 0;
}
```
在程序中,首先用两个指针 `left` 和 `right` 找到字符串中除前导和尾部连续的 `*` 之外的最左和最右的非 `*` 字符的位置。然后,用另外两个指针 `i` 和 `j` 遍历字符串,将非 `*` 字符复制到新字符串中,并且只复制连续的 `*` 中的一个。最后,将新字符串末尾加上结束符,即可得到处理后的字符串。
编写程序,完成下列题目:从键盘上输入两个数x,y,求x,y之和并将其赋值给s,最后输出s。 分别输入2个数,输入完一个数之后按回车确认,之后再输入另外一个 输入样例:3 4.5 输出样例:s=7.5
### 回答1:
下面是用 Python 语言实现的代码:
```python
# 从键盘上输入两个数 x, y
x = input("输入第一个数:")
y = input("输入第二个数:")
# 将 x, y 转换为浮点数
x = float(x)
y = float(y)
# 计算 x, y 之和
s = x + y
# 输出结果
print("s =", s)
```
运行结果如下:
```
输入第一个数:3
输入第二个数:4.5
s = 7.5
```
希望这能帮到你。
### 回答2:
编写程序如下:
```python
x = float(input("请输入第一个数:")) # 从键盘输入第一个数,使用float()函数将输入的字符串形式的数转换为浮点数
y = float(input("请输入第二个数:")) # 从键盘输入第二个数
s = x + y # 计算x和y的和,并将结果赋值给s
print("s =", s) # 输出s的值
```
运行该程序后,首先会提示用户输入第一个数,用户输入数值后按回车确认,然后程序会提示用户输入第二个数,用户再次输入数值后按回车确认。最后,程序会通过print语句输出计算结果。例如,如果用户依次输入3和4.5,则程序会输出"s = 7.5"。
### 回答3:
编写程序,完成下列题目:从键盘上输入两个数x,y,求x,y之和并将其赋值给s,最后输出s。
实现该程序可以使用C语言编程语言,具体代码如下:
#include <stdio.h>
int main() {
float x, y, s;
printf("请输入两个数:\n");
scanf("%f", &x);
scanf("%f", &y);
s = x + y;
printf("s=%.1f\n", s);
return 0;
}
在该程序中,我们使用了三个变量:x、y和s。首先,通过printf函数输出“请输入两个数:”的提示信息。然后,通过scanf函数分别接收用户输入的两个数,并分别存储在x和y变量中。接下来,将x和y相加的结果赋值给s变量。最后,通过printf函数输出s的值。其中,%.1f是对s进行格式化输出,保留一位小数。最后,返回0表示程序顺利执行结束。
阅读全文