#include <stdio.h> void fun( char *a ) { int i=0,n=0; char *p; p=a; while (*p=='*') { n++; /***** 请在以下一行填写代码 *****/ ; } while(*p) { /***** 请在以下一行填写代码 *****/ ; i++; p++; } while(n!=0) { a[i]='*'; i++; /*
时间: 2023-06-26 16:05:16 浏览: 47
请补全代码,使得fun函数能够实现以下功能:将字符串a中的所有*号移到字符串的开头,其余字符保持原有顺序。
补全后的代码如下:
```
#include <stdio.h>
void fun( char *a ) {
int i=0,n=0;
char *p;
p=a;
while (*p=='*') {
n++;
p++;
}
while(*p) {
if (*p == '*') {
a[n] = '*';
n++;
} else {
a[i+n] = *p;
}
i++;
p++;
}
while(n!=0) {
a[i]='*';
i++;
n--;
}
}
```
说明:
1. 第一个while循环用于找到字符串a中*号的数量n,并将指针p指向第一个非*字符的位置。
2. 第二个while循环用于将非*字符移到字符串开头,并将*号移到字符串末尾。
3. 第三个while循环用于将剩余的*号移到字符串末尾。
相关问题
*定义函数实现n个字符串按字典顺序排序 开头: #include<stdio.h> #include<string.h> void fun (char *str[],int n)
好的,以下是一个实现n个字符串按字典顺序排序的示例代码:
```
#include <stdio.h>
#include <string.h>
void fun(char *str[], int n) {
int i, j;
char *temp;
// 使用冒泡排序算法
for (i = 0; i < n-1; i++) {
for (j = 0; j < n-i-1; j++) {
if (strcmp(str[j], str[j+1]) > 0) {
// 交换两个字符串的位置
temp = str[j];
str[j] = str[j+1];
str[j+1] = temp;
}
}
}
}
int main() {
char *str[] = {"apple", "banana", "orange", "grape", "kiwi"};
int n = sizeof(str) / sizeof(str[0]);
fun(str, n);
printf("排序后的字符串数组:\n");
for (int i = 0; i < n; i++) {
printf("%s ", str[i]);
}
printf("\n");
return 0;
}
```
在这个示例代码中,我们使用了冒泡排序算法对字符串数组进行排序。在排序过程中,我们使用了 `strcmp()` 函数来比较两个字符串的大小关系,并使用指针变量 `temp` 来交换两个字符串在数组中的位置。最后,我们输出排好序的字符串数组。
请注意,这个示例代码中的字符串数组是在程序中直接定义的。如果您需要从用户输入中获取字符串数据,请使用 `scanf()` 或其他输入函数来读取数据,并将它们存储在字符串数组中。
#include <stdio.h> #include <stdlib.h> void PutRes(void); int fun(char *); int fun (char *p) 接着这个编写C语言:通过函数统计字符串中数字字符的个数,返回结果。在主函数中输入一串字符
代码如下:
```c
#include <stdio.h>
#include <stdlib.h>
int countDigits(char*);
int main() {
char str[100];
printf("Enter a string: ");
gets(str);
int count = countDigits(str);
printf("The number of digits in the string is: %d\n", count);
return 0;
}
int countDigits(char *str) {
int count = 0;
while (*str != '\0') {
if (*str >= '0' && *str <= '9') {
count++;
}
str++;
}
return count;
}
```
注意:使用 `gets()` 函数时要小心,因为它没有限制输入的长度,可能会导致缓冲区溢出。更好的选择是使用 `fgets()` 函数。