己编写一个求字符串长度的函数,代码中不能出现头文件string.h 函数原型可从main函数中得出,函数返回字符串s的长度,不包括字符串末尾的'\0' Input 输入为多行。每行为一个字符串s。s的字符总数不超过100个。 Output 输出为多行整数,对应每行输入的字符串长度。int main() { int n; char s[101]; while(gets(s) != NULL) printf("%d\n", strlen(s)); return 0; }
时间: 2024-04-08 14:29:16 浏览: 63
如果不能使用头文件`string.h`,我们可以手动编写一个求字符串长度的函数。以下是修改后的代码:
```c
#include <stdio.h>
int myStrlen(char s[]) {
int len = 0;
while (s[len] != '\0') {
len++;
}
return len;
}
int main() {
int n;
char s[101];
while (gets(s) != NULL) {
printf("%d\n", myStrlen(s));
}
return 0;
}
```
在这个代码中,我们定义了一个名为`myStrlen()`的函数,它接受一个字符数组作为参数,并返回字符串的长度。函数通过循环遍历字符数组直到遇到字符串的结尾符`\0`,并在每个循环迭代中递增长度计数器。然后在`main()`函数中,我们调用`myStrlen()`函数来计算字符串长度并输出结果。希望对你有所帮助!
相关问题
自己编写一个求字符串长度的函数,代码中不能出现头文件string.h 函数原型可从main函数中得出,函数返回字符串s的长度,不包括字符串末尾的'\0' Input 输入为多行。每行为一个字符串s。s的字符总数不超过100个。 Output 输出为多行整数,对应每行输入的字符串长度。
以下是一个求字符串长度的函数,代码中不使用头文件string.h:
```c
#include <stdio.h>
int strLength(char *s) {
int length = 0;
while (*s != '\0') {
length++;
s++;
}
return length;
}
int main() {
char s[101];
while (scanf("%s", s) != EOF) {
int length = strLength(s);
printf("%d\n", length);
}
return 0;
}
```
注意,这个函数假设输入的字符串不包含空格。如果输入可能包含空格,你可以使用`fgets()`函数替代`scanf()`函数来读取字符串。
编写函数,把一个指针数组中的n个字符串连接起来,生成一个大字符串,在主函数中打印该字符串,不使用string.h头文件。
可以使用以下函数实现:
```c
#include <stdio.h>
void concatStrings(char **strArr, int n, char *result) {
int i, j, k;
k = ;
for (i = ; i < n; i++) {
j = ;
while (strArr[i][j] != '\') {
result[k++] = strArr[i][j++];
}
}
result[k] = '\';
}
int main() {
char *strArr[] = {"Hello", "World", "!", "This", "is", "a", "test"};
int n = 7;
char result[100];
concatStrings(strArr, n, result);
printf("%s\n", result);
return ;
}
```
其中,`concatStrings`函数接受一个指向指针数组的指针`strArr`,数组中包含`n`个字符串,以及一个指向结果字符串的指针`result`。函数通过循环遍历每个字符串,将其逐个字符拼接到结果字符串中。最后,函数在结果字符串的末尾添加一个空字符,以表示字符串的结束。
在主函数中,我们定义了一个指针数组`strArr`,包含了一些字符串。我们还定义了一个结果字符串`result`,并调用`concatStrings`函数将指针数组中的字符串拼接到结果字符串中。最后,我们使用`printf`函数打印结果字符串。
阅读全文