strcmp函数测字符串长度
时间: 2023-11-19 21:57:46 浏览: 101
strcmp函数并不能测量字符串长度,它是用来比较两个字符串的大小的。该函数会比较两个字符串的每个字符,直到找到不同的字符或者其中一个字符串结束为止。如果找到不同的字符,则返回它们之间的差值;如果其中一个字符串结束,则返回它们长度的差值。以下是一个使用strcmp函数比较两个字符串的例子:
```c
#include <stdio.h>
#include <string.h>
int main () {
char str1[15];
char str2[15];
int ret;
strcpy(str1, "abcdef");
strcpy(str2, "ABCDEF");
ret = strcmp(str1, str2);
if(ret < 0) {
printf("str1 小于 str2");
} else if(ret > 0) {
printf("str2 小于 str1");
} else {
printf("str1 等于 str2");
}
return(0);
}
```
输出结果为:str1 小于 str2。
相关问题
分别用字符数组和字符指针作为函数参数,编写下列字符串处理函数,并给出测试结果: (1)求字符串长度的函数strLen(源字符串); (2)字符串复制函数strCpy(源字符串,目的字符串); (3)字符串连接函数strCat(字符串1,字符串2):字符串2连接到字符串1中; (4)字符串比较大小函数strCmp(字符串1,字符串2):若字符串1>字符串2,返回值大于0,比如1,若字符串1<字符串2,返回值小于0,如-1,若字符串1=字符串2,返回值等于0。
好的,我会根据您的要求回答您的问题。
(1)使用字符数组作为函数参数,求字符串长度的函数strLen:
```c++
int strLen(char s[]) {
int len = 0;
for (int i = 0; s[i] != '\0'; i++) {
len++;
}
return len;
}
```
测试代码:
```c++
char s[] = "hello world";
printf("字符串长度为:%d\n", strLen(s));
```
输出结果:字符串长度为:11
(2)使用字符指针作为函数参数,字符串复制函数strCpy:
```c++
void strCpy(char* dest, const char* src) {
while (*src != '\0') {
*dest = *src;
dest++;
src++;
}
*dest = '\0';
}
```
测试代码:
```c++
char s1[] = "hello";
char s2[10];
strCpy(s2, s1);
printf("复制后的字符串为:%s\n", s2);
```
输出结果:复制后的字符串为:hello
(3)使用字符数组作为函数参数,字符串连接函数strCat:
```c++
void strCat(char s1[], const char s2[]) {
int i, j;
i = j = 0;
while (s1[i] != '\0') {
i++;
}
while (s2[j] != '\0') {
s1[i] = s2[j];
i++;
j++;
}
s1[i] = '\0';
}
```
测试代码:
```c++
char s1[20] = "hello";
char s2[] = "world";
strCat(s1, s2);
printf("连接后的字符串为:%s\n", s1);
```
输出结果:连接后的字符串为:helloworld
(4)使用字符指针作为函数参数,字符串比较大小函数strCmp:
```c++
int strCmp(const char* s1, const char* s2) {
while (*s1 != '\0' && *s2 != '\0') {
if (*s1 > *s2) {
return 1;
} else if (*s1 < *s2) {
return -1;
}
s1++;
s2++;
}
if (*s1 == '\0' && *s2 == '\0') {
return 0;
} else if (*s1 == '\0') {
return -1;
} else {
return 1;
}
}
```
测试代码:
```c++
char s1[] = "hello";
char s2[] = "hello world";
printf("比较结果为:%d\n", strCmp(s1, s2));
```
输出结果:比较结果为:-1
使用strcmp函数比较两个字符串
strcmp函数是C语言中的一个字符串比较函数,可以用来比较两个字符串是否相等。其函数原型为:
```c
int strcmp(const char* str1, const char* str2);
```
其中,str1和str2分别是要比较的两个字符串,函数返回值为整型,表示比较结果:
- 如果str1和str2相等,则返回0;
- 如果str1小于str2,则返回一个负数;
- 如果str1大于str2,则返回一个正数。
在比较时,函数会从两个字符串的第一个字符开始逐一比较,直到出现不同字符或者其中一个字符串结束为止。如果两个字符串的长度不同,那么在比较时会先比较短的那个字符串的所有字符,如果都相等,则返回两个字符串长度的差值。
例如,下面的代码演示了如何使用strcmp函数比较两个字符串:
```c
#include <stdio.h>
#include <string.h>
int main() {
char str1[] = "Hello";
char str2[] = "World";
int result = strcmp(str1, str2);
if (result == 0) {
printf("str1和str2相等\n");
} else if (result < 0) {
printf("str1小于str2\n");
} else {
printf("str1大于str2\n");
}
return 0;
}
```
输出结果为:str1小于str2
阅读全文