生成C语言 把中文与数字混合的字符串二维数组中的数字转化为中文数字
时间: 2025-01-12 13:57:17 浏览: 38
以下是一个用C语言编写的程序,可以将包含中文字符和数字的二维字符串数组中的数字转换为中文数字:
```c
#include <stdio.h>
#include <string.h>
#include <ctype.h>
// 将单个数字转换为中文数字
void convertDigit(char *str) {
switch (*str) {
case '0': strcpy(str, "零"); break;
case '1': strcpy(str, "一"); break;
case '2': strcpy(str, "二"); break;
case '3': strcpy(str, "三"); break;
case '4': strcpy(str, "四"); break;
case '5': strcpy(str, "五"); break;
case '6': strcpy(str, "六"); break;
case '7': strcpy(str, "七"); break;
case '8': strcpy(str, "八"); break;
case '9': strcpy(str, "九"); break;
default: break;
}
}
// 将字符串中的数字转换为中文数字
void convertNumber(char *str) {
int len = strlen(str);
for (int i = 0; i < len; i++) {
if (isdigit(str[i])) {
convertDigit(&str[i]);
}
}
}
// 处理二维数组中的所有字符串
void processArray(char arr[][100], int rows, int cols) {
for (int i = 0; i < rows; i++) {
for (int j = 0; j < cols; j++) {
if (arr[i][j] == '\0') break;
convertNumber(&arr[i][j]);
}
}
}
// 打印二维数组
void printArray(char arr[][100], int rows, int cols) {
for (int i = 0; i < rows; i++) {
for (int j = 0; j < cols; j++) {
if (arr[i][j] == '\0') break;
printf("%c", arr[i][j]);
}
printf("\n");
}
}
int main() {
// 示例二维数组
char array[][100] = {
"我有2个苹果",
"今天3月15日",
"100米赛跑",
"价格为¥50"
};
int rows = sizeof(array) / sizeof(array[0]);
int cols = sizeof(array[0]) / sizeof(array[0][0]);
printf("转换前:\n");
printArray(array, rows, cols);
processArray(array, rows, cols);
printf("\n转换后:\n");
printArray(array, rows, cols);
return 0;
}
```
这个程序的工作原理如下:
1. `convertDigit` 函数:将单个数字字符转换为对应的中文数字。
2. `convertNumber` 函数:遍历字符串中的每个字符,如果发现数字字符,就调用 `convertDigit` 函数进行转换。
3. `processArray` 函数:遍历二维数组的每个元素(即每个字符串),并对其中的数字进行转换。
4. `printArray` 函数:打印二维数组的内容。
5. `main` 函数:创建示例数组,调用打印函数显示原始内容,然后进行转换,最后再次打印结果。
这个程序可以处理包含中文字符和数字的任意二维字符串数组。你可以根据需要修改 `array` 数组的内容来测试不同的情况。
阅读全文
相关推荐
















