用c语言按如下函数原型编程统计字符数组string中有多少个单词,同时把字符串中的每个空格都替换成‘*’: int CountWordAndReplaceBlank(char string[]); 在主函数中输入一个字符串(假设字符串的最大长度为100个字符),调用函数 CountWordAndReplaceBlank()统计其中有多少个单词,同时把字符串中的每个空格都替换成‘*’,并将统计的单词个数返回给主函数(假设单词之间以空格分开,且各单词之间只有一个空格,并且输入的整个字符串的前面和后面都没有空格),然后在主函数中输出统计的单词个数以及将空格替换为‘*’以后的字符串。 **输入提示信息:"input the string:" **输入数据格式:输入字符串用gets() **输出提示信息及格式:"Numbers of words = %d\n" "the answer:%s\n" 注:(1)不能使用指针、结构体、共用体、文件、goto、枚举类型进行编程。 (2)用纯C语言编程,所有变量必须在第一条可执行语句前定义。
时间: 2023-12-03 12:46:02 浏览: 34
```c
#include <stdio.h>
#include <string.h>
int CountWordAndReplaceBlank(char string[]);
int main() {
char string[101];
printf("input the string:");
gets(string);
int count = CountWordAndReplaceBlank(string);
printf("Numbers of words = %d\n", count);
printf("the answer:%s\n", string);
return 0;
}
int CountWordAndReplaceBlank(char string[]) {
int count = 1;
for (int i = 0; i < strlen(string); i++) {
if (string[i] == ' ') {
string[i] = '*';
count++;
}
}
return count;
}
```
相关问题
用c语言用字符数组作函数参数编程实现在字符串每个字符间插入一个空格的功能。
以下是将无空格的字符串转换为每个字符之间都有一个空格的字符串的示例 C 代码:
```c
#include <stdio.h>
#include <string.h>
void add_spaces(char str[]) {
// Calculate the length of the original string
int len = strlen(str);
// Create a new string with enough space for a space between each character
char new_str[2 * len + 1];
// Loop through the original string and add a space after each character
for (int i = 0; i < len; i++) {
new_str[2 * i] = str[i];
new_str[2 * i + 1] = ' ';
}
new_str[2 * len] = '\0';
// Copy the new string back into the original string
strcpy(str, new_str);
}
int main() {
char str[] = "HelloWorld";
add_spaces(str);
printf("%s\n", str);
return 0;
}
```
编译并运行此程序会输出 "H e l l o W o r l d ",其中每个字符之间都有一个空格。
输入一行字符,用函数编程统计其中有多少个单词。假设单词之间以空格分开(请尝试分别使用字符数组和字符指针实现)使用c语言
使用字符数组实现:
```c
#include <stdio.h>
int countWords(char str[]) {
int count = 0;
int i = 0;
while (str[i] != '\0') {
if (str[i] == ' ') {
count++;
}
i++;
}
return count + 1;
}
int main() {
char str[100];
printf("请输入一行字符:");
gets(str);
int num = countWords(str);
printf("单词个数:%d\n", num);
return 0;
}
```
使用字符指针实现:
```c
#include <stdio.h>
#include <string.h>
int countWords(char *str) {
int count = 0;
char *p = strtok(str, " ");
while (p != NULL) {
count++;
p = strtok(NULL, " ");
}
return count;
}
int main() {
char str[100];
printf("请输入一行字符:");
gets(str);
int num = countWords(str);
printf("单词个数:%d\n", num);
return 0;
}
```
两种方法的区别在于:使用字符数组实现需要逐个遍历字符,而使用字符指针实现则可以使用 `strtok()` 函数进行分割字符串。