将排序后的字符串转换成整数数组

有什么方法能不用已经知道的函数,实现字符串转换成整数数组呢?

以下是用 C++ 将排序后的字符串转换成整数数组的示例代码:

#include <iostream>
#include <string>
#include <algorithm>

using namespace std;

int main()
{
    string str = "123456789"; // 排序后的字符串
    int n = str.length(); // 字符串长度
    int arr[n]; // 定义整数数组
    for (int i = 0; i < n; i++) {
        arr[i] = str[i] - '0'; // 将字符转换成整数
    }
    for (int i = 0; i < n; i++) {
        cout << arr[i] << " "; // 输出整数数组
    }
    return 0;
}

在这个示例代码中,我们首先定义了一个排序后的字符串 str,然后计算了字符串的长度 n。接着,我们定义了一个整数数组 arr,大小为字符串长度 n。

在循环中,我们将排序后的字符串中的每个字符都转换成整数,并赋值给整数数组中对应的元素。这里使用了字符与数字的 ASCII 码差值来实现字符向整数的转换。

最后,我们循环输出整数数组中的元素,以检查转换是否成功。

供参考:

#include <stdio.h>
#include <string.h>
int main()
{
    char str[512], ch;
    int  dig[512], i, j;
    scanf("%[^\n]", str);
    for (i = strlen(str) - 1; i > 0; i--) {//排序
        for (j = 0; j < i; j++) {
            if (str[j] < str[j + 1]) {
                ch = str[j], str[j] = str[j + 1], str[j + 1] = ch;
            }
        }
    }
    for (i = 0; str[i]; i++)  { //字符串转换成整数数组并输出
        dig[i] = (int)str[i];
        printf(i == 0 ? "%d(%c)" : " %d(%c)", dig[i], str[i]);
    }
    return 0;
}