有什么方法能不用已经知道的函数,实现字符串转换成整数数组呢?
以下是用 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;
}