请使用while函数将fun函数的内容补充完整,编写出一个C语言程序,对字符串,除首、尾字符外,将其字符按ASCII编码数值降序排列的操作:#include<stdio.h> #include<ctype.h> #include<string.h> #include<conio.h> void wwjt(); void fun(char *a,int len) { int i,j; char t; } main(){ char s[100]; int l; printf("输入字符串:"); gets(s); l=strlen(s); fun(s,l); printf("\n%s\n",s); wwjt(); }
时间: 2024-04-25 15:26:18 浏览: 114
#include<stdio.h>
#include<ctype.h>
#include<string.h>
#include<conio.h>
void wwjt();
void fun(char *a, int len) {
int i, j;
char t;
i = 1;
j = len - 2; //除去首尾字符后的最后一个字符的下标
while (i < j) {
while (i < j && a[i] > a[j]) {
t = a[i];
a[i] = a[j];
a[j] = t;
i++;
j--;
}
i++;
j--;
}
}
int main() {
char s[100];
int l;
printf("输入字符串:");
gets(s);
l = strlen(s);
fun(s, l);
printf("\n%s\n", s);
wwjt();
return 0;
}
void wwjt() {
printf("我爱计算机网络课程设计!\n");
}
相关问题
用c语言编写函数fun将一个数字字符串转化为一个整数 不得调用c语言提供的将字符串转化为整数的函数
可以使用以下代码实现将数字字符串转化为整数的功能:
```c
#include <stdio.h>
int fun(char *str) {
int num = 0;
while(*str != '\0') {
num = num * 10 + (*str - '0');
str++;
}
return num;
}
int main() {
char str[] = "12345";
int num = fun(str);
printf("%d\n", num);
return 0;
}
```
首先定义一个整数变量num并初始化为0,然后使用while循环遍历字符串中的每个字符,将其转化为数字并加到num中。具体实现时,num先乘以10,然后加上当前字符与字符'0'之间的差值即可。最后返回num即可得到转化后的整数。
编写函数fun将一个数字字符串转换为一个整数(不得调用C语言提供的将字符串转换为整数的函数)。
以下是一种简单的实现方式:
```c
#include <stdio.h>
int fun(const char* str) {
int num = 0;
int sign = 1;
const char* ptr = str;
// 处理符号位
if (*ptr == '-') {
sign = -1;
ptr++;
}
else if (*ptr == '+') {
ptr++;
}
// 处理数字字符
while (*ptr >= '0' && *ptr <= '9') {
num = num * 10 + (*ptr - '0');
ptr++;
}
return num * sign;
}
int main() {
const char* str = "-12345";
int num = fun(str);
printf("%d\n", num);
return 0;
}
```
该函数首先处理符号位,然后遍历字符串中的数字字符,计算出对应的整数值。需要注意的是,这个函数只能正确处理整数字符串,无法正确处理包含小数点或指数符号的字符串。
阅读全文