void exchange(float *p, float *q);
void strSort(char *strings[], int count);
void strPrintf(char *strings[], int count);
void deleteNum(char *str);
int main(int argc, const char * argv[]) {
//1. (**)编写一个函数,交换2个浮点数
{
float f1 = 0.25,f2 = 0.35;
printf("交换前f1 = %.2f,f2 = %.2f\n",f1,f2);
exchange(&f1, &f2);
printf("交换后f1 = %.2f,f2 = %.2f\n",f1,f2);
}
//2.(***)在主函数中输入6个字符串,对他们按从小到大的顺序,然后输出这6个已经排好序的字符串。要求使用指针数组进行处理。 写一个函数, 实现字符串排序, 函数的参数是指针数组
{
char str1[20] = {}, str2[20] = {},str3[20] = {},str4[20] = {}, str5[20] = {}, str6[20] = {};
char *strings[6] ={str1,str2,str3,str4,str5,str6};
for (int i = 0; i < 6; i++) {
printf("请输入第%d个字符串(少于19个字符):",i + 1);
scanf("%s",strings[i]);
}
strSort(strings, 6);
strPrintf(strings, 6);
}
//3.(****)面试题:有一字符串中包含数字与字符,请编程去除数字. 尝试多种方式来实现
// 方法一
{
char str1[] = "disa231dsads23";char str2[100] = {};int count = 0;
for (int i = 0; i < strlen(str1); i++) {
if (str1[i] < '0' || str1[i] > '9') {
str2[count] = str1[i];
count ++;
}
}
strcpy(str1, str2);
printf("str1 字符串为: %s\n",str1);
}
//方法二
{
char str1[] = "disa231dsads23";
int numA = 0;
unsigned long len = strlen(str1);
for (int i = 0; i < len; i++) {
if (str1[i] <= '0' || str1[i] >= '9') {
str1[numA] = str1[i];
numA ++;
}
}
str1[numA] = 0;
printf("str1 字符串为: %s\n",str1);
printf("%d",numA);
}
//方法三
{
char str1[] = "disa231dsads23";
deleteNum(str1);
printf("str1 字符串为: %s\n",str1);
}
}
void exchange(float *p, float *q){
float temp = *p;
*p = *q;
*q = temp;
}
void strSort(char *strings[], int count){
for (int j = 0; j < count - 1; j++) {
for (int k = 0; k < count - 1 - j ; k++) {
if (strcmp(strings[k],strings[k + 1]) > 0) {
char *temp = strings[k];
strings[k] = strings[k + 1];
strings[k + 1] = temp;
}
}
}
}
void strPrintf(char *strings[], int count){
for (int i = 0; i < count; i++) {
printf("%s ",strings[i]);
}
printf("\n");
}
void mine(char *p){
}
void deleteNum(char *p){
char *q = p;
while (*p++ != '\0') {
if (*p <= '0' || *p >= '9') {
*q++ = *p;
}
}
*q = '\0';
}6
C - 指针 Homework
最新推荐文章于 2022-01-03 16:13:11 发布