若字符数组s1和s2中均已正确存储字符串,则可以使用 if(s1>s2) 进行两字符串大小的比较。
时间: 2024-05-29 22:14:12 浏览: 132
这个说法是错误的。在 C/C++ 中,字符数组在使用时会自动转换为指向首个字符的指针,因此 if(s1>s2) 实际上是在比较两个指针的大小,而不是比较两个字符串的大小。这种比较方法是不可靠的,因为它只能保证在同一块连续内存空间中的字符串比较结果是正确的,而对于不在同一块连续内存空间中的字符串,比较结果是不确定的。正确的比较字符串大小的方法是使用 strcmp 函数。
相关问题
写一个C语言程序,从键盘输入两个字符串存放在字符数组s1和s2中,数组s1和s2大小均为40。把s1和s2连接在一起构成一个字符串存放在字符数组s3中,最后输出s3。不要使用strcat和strcpy函数。
好的,这是一个编程问题,我可以帮你解答。以下是一个示例程序:
```c
#include <stdio.h>
int main() {
char s1[41], s2[41], s3[81];
int i, j;
printf("请输入字符串s1:");
scanf("%s", s1);
printf("请输入字符串s2:");
scanf("%s", s2);
// 将s1复制到s3
for (i = 0; s1[i] != '\0'; i++) {
s3[i] = s1[i];
}
// 将s2复制到s3
for (j = 0; s2[j] != '\0'; j++) {
s3[i + j] = s2[j];
}
// 添加字符串结尾符号
s3[i + j] = '\0';
printf("连接后的字符串s3为:%s\n", s3);
return 0;
}
```
这个程序会先从键盘读取两个字符串,然后将它们连接在一起存储到另一个字符数组s3中,最后输出s3。请注意,程序中没有使用strcat和strcpy函数。
从键盘上先后读入两个字符串,假定存储在字符数组s1和s2中。注意,这两个字符串最长均可达到26个字符、最短均可为0个字符。将字符串s2插入字符串s1中,生成一个新的字符串s。插入方法为s2的第i个字符
题目的意思是:从键盘上先后读入两个字符串,假定存储在字符数组s1和s2中。注意,这两个字符串最长均可达到26个字符、最短可为0个字符。将字符串s2插入到字符串s1中,生成一个新字符串s。插入方法是:s2插入到s1的指定位置,新字符串仍然存放在s1数组中。插入s2方法的第一个字符。
阅读全文