用C语言编程比较两个字符串的大小
时间: 2024-03-06 14:51:56 浏览: 19
在C语言中,比较两个字符串的大小可以使用strcmp函数,该函数定义在string.h头文件中。下面是一个示例代码:
```
#include <stdio.h>
#include <string.h>
int main() {
char str1[50], str2[50];
int result;
printf("请输入第一个字符串:");
scanf("%s", str1);
printf("请输入第二个字符串:");
scanf("%s", str2);
result = strcmp(str1, str2);
if(result < 0) {
printf("%s 小于 %s\n", str1, str2);
}
else if(result > 0) {
printf("%s 大于 %s\n", str1, str2);
}
else {
printf("%s 等于 %s\n", str1, str2);
}
return 0;
}
```
在上面的示例代码中,我们先定义了两个字符串变量str1和str2,然后使用scanf函数分别读取两个字符串。接着,使用strcmp函数比较两个字符串的大小,结果保存在变量result中。最后,根据result的值判断两个字符串的大小关系并输出结果。
相关问题
用c语言编程,将两个字符串连接后升序排列
下面是一段C语言代码,实现了将两个字符串连接后升序排列的功能。其中使用了字符串库函数`strcmp`和`strcpy`。
```c
#include <stdio.h>
#include <string.h>
int main() {
char str1[100], str2[100], temp[100];
printf("Enter first string: ");
scanf("%s", str1);
printf("Enter second string: ");
scanf("%s", str2);
strcat(str1, str2); // 将两个字符串连接
int n = strlen(str1);
for (int i = 0; i < n - 1; i++) {
for (int j = i + 1; j < n; j++) {
if (strcmp(&str1[i], &str1[j]) > 0) { // 如果前面的字符串大于后面的字符串
strcpy(temp, &str1[i]); // 交换两个字符串
strcpy(&str1[i], &str1[j]);
strcpy(&str1[j], temp);
}
}
}
printf("The sorted string is: %s", str1);
return 0;
}
```
上述代码首先通过`scanf`函数获取两个字符串,并使用`strcat`函数将它们连接成一个字符串。接着使用双重循环遍历字符串中的所有子串,如果前面的子串大于后面的子串,那么就交换它们。最后输出排序后的字符串。
用c语言编程,将两个字符串连接起来但不用strcat
你可以使用指针来实现字符串连接,具体步骤如下:
1. 定义一个新字符串,长度为两个字符串长度之和加一(多加一位用于存放字符串结束标志'\0')。
2. 定义两个指向原字符串和新字符串的指针,分别指向原字符串的首地址和新字符串的首地址。
3. 将原字符串的内容复制到新字符串中。
4. 将原字符串指针和新字符串指针分别移动到字符串末尾。
5. 将第二个原字符串的内容复制到新字符串中。
6. 在新字符串末尾添加结束标志'\0'。
7. 返回新字符串的首地址。
下面是示例代码:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
char* str_connect(char* str1, char* str2)
{
int len1 = strlen(str1);
int len2 = strlen(str2);
char* new_str = (char*)malloc(sizeof(char) * (len1 + len2 + 1));
if (!new_str) {
printf("Error: memory allocation failed!\n");
exit(1);
}
char* p1 = str1;
char* p2 = new_str;
while (*p1) {
*p2++ = *p1++;
}
p1 = str2;
while (*p1) {
*p2++ = *p1++;
}
*p2 = '\0';
return new_str;
}
int main()
{
char str1[] = "Hello, ";
char str2[] = "world!";
char* new_str = str_connect(str1, str2);
printf("%s\n", new_str);
free(new_str);
return 0;
}
```
输出结果为:Hello, world!