关于上篇文章中提取数字的题目 我们自定义了一个函数用于判断str[i]是否为字符类型数字 实际上<ctype.h>函数库可以帮我们做到这点(已将原先的自定义函数库注释掉)

#include<stdio.h>
#include<ctype.h>
/*int fun(char x)
{    
    if(x-'0'>=0&&x-'0'<=9)
    return 1;
    return 0;
}*/
int main()
{    
    char str[101];
    fgets(str,sizeof(str),stdin);
    char num[101];
    int i=0,j=0;
    for(i;str[i]!='\0';i++)
    {
        if(isdigit(str[i]))
        {
            num[j++]=str[i];
        }
    }
    for(int c=0;c<j;c++)
    {
        printf("%c",num[c]);
    }
    return 0;
}

#define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <string.h> #include <stdbool.h> #include <stdlib.h> #include <math.h> #include <ctype.h> #include <limits.h> //宏:定义 #define EPS 1e-9 #define MOD 100000000 //宏:类型 #define in int #define ll long long #define fl float #define db double #define ch char #define vd void //宏:函数 #define sc scanf #define pr printf //宏:输入 #define sc_in(x) sc("%d", &(x)) #define sc_ll(x) sc("%lld", &(x)) #define sc_db(x) sc("%lf", &(x)) #define sc_ch(x) sc("%c", &(x)) #define sc_st(str) sc("%s", (str)) //宏:输出(无换行) #define pr_in(x) pr("%d", x) #define pr_ll(x) pr("%lld", x) #define pr_db(x) pr("%lf", x) #define pr_ch(x) pr("%c", x) #define pr_st(x) pr("%s", x) //宏:输出(有换行) #define pr_inn(x) pr("%d\n", x) #define pr_lln(x) pr("%lld\n", x) #define pr_dbn(x) pr("%lf\n", x) #define pr_chn(x) pr("%c\n", x) #define pr_stn(x) pr("%s\n", x) //浮点相等判断 #define feq(a, b) (fabs((a) - (b)) < EPS) //数组长度获取 #define ArrayNum(x) (sizeof(x)/sizeof(x[0])) //vd bubble_sort(db* arr, size_t n) //{ // if (arr == NULL || n < 2) // { // return; // } // for (size_t i = 0; i < n - 1; i++) // { // in swapped = 0; // for (size_t j = 0; j < n - i - 1; j++) // { // if (arr[j] > arr[j + 1]) // { // db temp = arr[j]; // arr[j] = arr[j + 1]; // arr[j + 1] = temp; // swapped = 1; // } // } // if (!swapped) // { // break; // } // } //} //vd print_arr1(db arr[], in n) //{ // for (in i = 0; i < n; i++) // { // if (!(feq(arr[i], 0))) // { // pr("%.4lf ", arr[i]); // } // // } //} //in main() //{ // in n; // sc_in(n); // db arr[2010] = { 0 }; // for (in i = 0; i < n; i++) // { // sc_db(arr[i]); // } // bubble_sort(arr, ArrayNum(arr)); // print_arr1(arr, ArrayNum(arr)); // return 0; //} //in main() //{ // in t; // sc_in(t); // while (t--) // { // in n; // sc_in(n); // in c[3] = { 0 }; // for (in i = 0; i < n; i++) // { // in a; // sc_in(a); // c[a % 3]++; // } // in max = c[0]; // if (c[1] > max) // { // max = c[1]; // } // if (c[2] > max) // { // max = c[2]; // } // if (max <= (n + 1) / 2) // { // pr("YES\n"); // } // else // pr("NO\n"); // } // return 0; //} //in main() //{ // in arr[110][2]; // in n, m; // sc_in(n); // sc_in(m); // in N = n; // for (in row = 1; row <= n; row++) // { // for (in col = 1; col <= 2; col++) // { // if (col == 1) // { // arr[row][col] = row; // } // else // { // arr[row][col] = 1; // } // } // } // in i = 0; // while (N >=1) // { // for (in row = 1; row <= n; row++) // { // if (arr[row][2] == 0) // { // i = i; // } // else // { // i++; // } // if (i % m == 0) // { // if (arr[row][2] != 0) // { // pr_in(row); // pr(" "); // N--; // } // arr[row][2] = 0; // } // } // } // return 0; //} //vd reverse_string1(ch* str) //{ // if (str == NULL) // { // return; // } // in left = 0; // in right = strlen(str) - 1; // ch temp; // while (left < right) // { // temp = str[left]; // str[left] = str[right]; // str[right] = temp; // left++; // right--; // } //} //ll pow_mod1(ll base, ll exp) //{ // ll result = 1; // while (exp > 0) // { // if (exp & 1) // { // result = (result * base); // } // base = (base * base); // exp >>= 1; // } // return result; //} //ch str[100000000]; //in main() //{ // in n; // sc_in(n); // for (in i = 0; i < n; i++) // { // in digit; // sc_st(str); // in flag = 1; // if (str[0] == '-') // { // for (in i = 0; i < ArrayNum(str); i++) // { // str[i] = str[i + 1]; // } // flag = -1; // } // reverse_string1(str); // if (str[0] == 'a') // { // digit = 10; // } // else if (str[0] == 'b') // { // digit = 11; // } // else if (str[0] == 'c') // { // digit = 12; // } // else if (str[0] == 'd') // { // digit = 13; // } // else if (str[0] == 'e') // { // digit = 14; // } // else if (str[0] == 'f') // { // digit = 15; // } // else if (str[0] == 'g') // { // digit = 16; // } // else // { // digit = str[0] - '0'; // } // ll sum = 0; // ll base = 1; // for (ll i = 1; i <strlen(str); i++) // { // if(isalpha(str[i])) // { // sum += (str[i] - 'a' + 11) * pow_mod1(digit, i - 1); // } // else // { // sum += (str[i]-'0') * pow_mod1(digit, i - 1); // } // } // if (flag == -1) // { // printf("-"); // } // pr("%lld\n", sum); // } // return 0; //} //int main() //{ // ll AA[110][110] = { 0 }; // ll n; // scanf("%lld", &n); // for (int i = 1; i <= n; i++) // { // for (int j = 1; j <= n; j++) // { // scanf("%lld", &AA[i][j]); // } // } // for (int i = 1; i <= n; i++) // { // for (int j = 1; j <= n; j++) // { // printf("%lld ", AA[j][i] + AA[i][j]); // } // printf("\n"); // } // return 0; //} //ch index_name[1010][110]; //in main() //{ // for (in i = 1; i <= 1000; i++) // { // A: // ; // ch c; // in j = 0; // while ((c = getchar()) != '\n' && c != EOF) // { // index_name[i][j++] = c; // } // index_name[i][j] = '\0'; // if (c == EOF) // { // return 0; // } // for (in k = 1; k < i; k++) // { // if (strcmp(index_name[i], index_name[k]) == 0) // { // pr("Not Applicable\n"); // goto A; // } // } // pr("Delicious!\n"); // } // return 0; //} //vd bubble_sort1(in* arr, size_t n) //{ // if (arr == NULL || n < 2) // { // return; // } // for (size_t i = 0; i < n - 1; i++) // { // in swapped = 0; // for (size_t j = 0; j < n - i - 1; j++) // { // if (arr[j] > arr[j + 1]) // { // in temp = arr[j]; // arr[j] = arr[j + 1]; // arr[j + 1] = temp; // swapped = 1; // } // } // if (!swapped) // { // break; // } // } //} //vd scan_arr11(in arr[], in n) //{ // for (in i = 0; i < n; i++) // { // sc("%d", &arr[i]); // } //} // in arr[10010] = { 0 }; //in main() //{ // in n; // sc_in(n); // db p; // sc_db(p); // // scan_arr11(arr, n); // bubble_sort1(arr, n); // db P = n * p; // in Q = n * p; // if (feq(P, Q)) // { // db xp = 0.5 * (arr[Q - 1] + arr[Q]); // pr("%.1lf",xp); // } // else // { // in xp = arr[Q]; // pr("%d", xp); // pr(".0"); // } // return 0; //} //思路 //从后往前读字串可以保证长度的升序; //长度的升序,转换为检索的下标 //子串长度l = sizeof(str) - 字符串下标 //abcde; //e 长度1 index = 5;arr[5] = 'e' - 'a'=4; //d 长度2 index = 4;arr[4] = 'd' - 'a'=3; //ababa //a index = 5; arr[5] = 0; //b index = 4; arr[4] = 1; //a index = 3; arr[3] = 0; //b index = 2; arr[2] = 1; //a index = 1; arr[1] = 0; vd reverse_arrc(ch arr[], in n) { for (in i = 0; i < n / 2; i++) { ch t = arr[i]; arr[i] = arr[n - 1 - i]; arr[n - 1 - i] = t; } } vd bubble_sortc(ch* str[][], size_t n)//n=arrn { in index[505] = { 0 }; for (size_t i = 0; i < n - 1; i++) { for (in k = 0; k < n; k++) { index[k] = n - k; } in swapped = 0; for (size_t j = 0; j < n - i - 1; j++) { if (strcmp(str[j], str[j + 1]) > 0) { in temp = index[j]; index[j] = index[j + 1]; index[j + 1] = temp; swapped = 1; } } if (!swapped) { break; } } for (in u = 0; u <= n; u++) { pr("%d ", index[u]); } } ch arr[505]; ch str_s[505][505]; in main() { ch c; in j = 0; while ((c = getchar()) != '\n' && c != EOF) { arr[j++] = c;//abac } reverse_arrc(arr, ArrayNum(arr)); in num = ArrayNum(arr); while (num--) { for (in i = 0; i <= ArrayNum(arr) + 1 - num; i++) { str_s[ArrayNum(arr) + 1 - num][i] = arr[i]; } reverse_arrc(str_s[ArrayNum(arr) + 1 - num], ArrayNum(str_s)); } bubble_sortc(str_s, size_t ArrayNum(arr)); }
11-01
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值