#include<iostream> using namespace std; int main() { char s1[80]="aabbbb",s2[80]="aaacddd"; char *str1=s1,*str2=s2; int d; while(*str1&&*str2) { d=*str1-*str2; if(d<0) break; str1++; str2++: } if(d==0) d=*str1-*str2; cout<<d; return 0; }改正错误此程序目的是用字符指针比较字符串s1,s2的大小
时间: 2024-01-07 18:05:46 浏览: 76
以下是修改后的程序:
```c++
#include <iostream>
using namespace std;
int main() {
char s1[80] = "aabbbb", s2[80] = "aaacddd";
char *str1 = s1, *str2 = s2;
int d;
while (*str1 && *str2) {
d = *str1 - *str2;
if (d != 0)
break;
str1++;
str2++;
}
if (d == 0)
d = *str1 - *str2;
cout << d << endl;
return 0;
}
```
修改说明:
1. 第 3 行需要加上 `;`。
2. 第 11 行的 `:` 应该是 `;`。
3. 在判断大小关系时,只需要在字符相等时判断是否继续比较即可,所以将 `if (d < 0)` 改为 `if (d != 0)`。
相关问题
#include<iostream> using namespace std; int main() { char s1[]="Goodbye",s2[8]; char*from=s1,*to=S2; while(* from) { *to++=*from++; } to='\0'; cout<<s1; cout<<s2; return 0; }检查程序错误
在程序中,存在以下错误:
1. `using namespace std;` 应该在 `#include<iostream>` 前面。
2. `char*from=s1,*to=S2;` 中的 `S2` 应该改为 `s2`。
3. `to='\0';` 应该改为 `*to='\0';`。
修改后的程序如下:
```
#include <iostream>
using namespace std;
int main()
{
char s1[] = "Goodbye", s2[8];
char* from = s1, * to = s2;
while (*from)
{
*to++ = *from++;
}
*to = '\0';
cout << s1 << endl;
cout << s2 << endl;
return 0;
}
```
改写一下代码:#include<iostream> using namespace std; char st[200]; int main(){ while (scanf("%s",&st)==1) cout<<st<<" "; return 0; }
#include <iostream>
#include <cstring> // 添加头文件
using namespace std;
char st[200];
int main() {
while (scanf("%s", st) == 1) // 去掉取地址符&
cout << st << " ";
return 0;
}
阅读全文