int len(char *sp) { int len = 0; // 初始化长度为0 while (*sp) { // 遍历字符串,当未到结束符'\0'时,累加长度 if (*sp != ' ') { // 如果当前字符不是空格,则累加长度 len++; } sp++; // 指针后移 } return len; // 返回字符串长度 }
时间: 2024-02-05 10:04:32 浏览: 27
这是一个C语言函数,用于计算一个字符串中非空格字符的个数。该函数接受一个指向字符串的指针作为参数,然后遍历该字符串并累加非空格字符的个数,最终返回字符串中非空格字符的个数。
下面是该函数的详细解释:
```c
int len(char *sp) {
int len = 0; // 初始化长度为0
while (*sp) { // 遍历字符串,当未到结束符'\0'时,累加长度
if (*sp != ' ') { // 如果当前字符不是空格,则累加长度
len++;
}
sp++; // 指针后移
}
return len; // 返回字符串中非空格字符的个数
}
```
该函数使用了一个while循环,当指针指向的字符不是结束符'\0'时,就继续循环。在每次循环中,判断指针指向的字符是否为空格,如果不是,则将长度加1。最后,返回字符串中非空格字符的个数。
相关问题
int len(char *sp) { int len = 0; while (*sp) { //遍历字符串,当未到结束符'\0'时,累加长度 if (*sp != ' ') { len++; } sp++; //指针后移 } return len; }
这是一个C语言函数,用于计算字符串的长度(不包括空格字符)。函数接受一个指向字符串的指针作为参数,然后遍历该字符串并累加非空格字符的个数,最终返回字符串的长度。
下面是该函数的详细解释:
```c
int len(char *sp) {
int len = 0; // 初始化长度为0
while (*sp) { // 遍历字符串,当未到结束符'\0'时,累加长度
if (*sp != ' ') { // 如果当前字符不是空格,则累加长度
len++;
}
sp++; // 指针后移
}
return len; // 返回字符串长度
}
```
该函数使用了一个while循环,当指针指向的字符不是结束符'\0'时,就继续循环。在每次循环中,判断指针指向的字符是否为空格,如果不是,则将长度加1。最后,返回字符串的长度。
void reverse(char *str) //函数reverse()用于翻转字符串str char tmp = 0;//临时保存字符 int len = 0;//字符串的长度int ii = 0;//循环变量 【 】 ; //获取字符串的长度 //交换前后两个字符,然后交换下一个字符,直到中间为止 for(ii = 0; ii < (1en / 2); ii++) { tmp = str[ii];【 】 ; 【 】 ; } }
获取字符串长度的代码应该是:
```c
len = strlen(str);
```
交换前后两个字符的代码应该是:
```c
tmp = str[ii];
str[ii] = str[len-1-ii];
str[len-1-ii] = tmp;
```
完整的代码如下:
```c
#include <stdio.h>
#include <string.h>
void reverse(char *str) {
char tmp = 0; //临时保存字符
int len = 0; //字符串的长度
int ii = 0; //循环变量
len = strlen(str); //获取字符串的长度
//交换前后两个字符,然后交换下一个字符,直到中间为止
for(ii = 0; ii < (len / 2); ii++) {
tmp = str[ii];
str[ii] = str[len-1-ii];
str[len-1-ii] = tmp;
}
}
int main() {
char str[] = "hello world";
printf("Original string: %s\n", str);
reverse(str);
printf("Reversed string: %s\n", str);
return 0;
}
```