使用c语言Write a program to create a 2D array of characters and print it as a string.
时间: 2023-06-13 19:05:43 浏览: 128
以下是使用 C 语言编写的程序,用于创建一个字符的2D数组,并将其打印为字符串:
```c
#include <stdio.h>
#define ROWS 3
#define COLS 4
int main() {
char arr[ROWS][COLS] = { {'H', 'e', 'l', 'l'}, {'o', ' ', 'W', 'o'}, {'r', 'l', 'd', '!'} };
int i, j;
char str[ROWS * COLS + 1]; // 用于存储字符数组的字符串形式,加 1 是为了存储字符串末尾的 '\0'
// 将字符数组转换为字符串
for (i = 0; i < ROWS; i++) {
for (j = 0; j < COLS; j++) {
str[i * COLS + j] = arr[i][j];
}
}
str[ROWS * COLS] = '\0'; // 在字符串末尾添加 '\0'
// 输出字符串
printf("%s\n", str);
return 0;
}
```
程序首先定义了一个3x4的字符数组,并将其初始化为 "Hello World!"。然后,程序将字符数组转换为字符串,将其存储在一个名为 "str" 的字符数组中。最后,程序输出字符串。
输出结果为:
```
Hello World!
```
相关问题
使用c语言Write a program to check if the given 2D array is a symmetric matrix.
以下是用C语言编写的检查给定2D数组是否为对称矩阵的程序:
```c
#include <stdio.h>
int main() {
int rows, cols, i, j, isSymmetric = 1;
printf("Enter number of rows and columns of matrix: ");
scanf("%d %d", &rows, &cols);
int matrix[rows][cols];
printf("Enter matrix elements:\n");
// Read matrix elements
for (i = 0; i < rows; i++) {
for (j = 0; j < cols; j++) {
scanf("%d", &matrix[i][j]);
}
}
// Check if matrix is symmetric
for (i = 0; i < rows; i++) {
for (j = 0; j < cols; j++) {
if (matrix[i][j] != matrix[j][i]) {
isSymmetric = 0;
break;
}
}
if (isSymmetric == 0) {
break;
}
}
if (isSymmetric) {
printf("The matrix is symmetric.\n");
} else {
printf("The matrix is not symmetric.\n");
}
return 0;
}
```
该程序首先要求用户输入矩阵的行数和列数,然后读取矩阵元素并检查矩阵是否对称。如果矩阵是对称的,则程序输出“该矩阵是对称的”,否则输出“该矩阵不是对称的”。程序使用两个嵌套的循环来遍历矩阵,并检查矩阵的每个元素是否等于其转置的元素。如果任何元素不等于其转置,则矩阵不对称,程序将退出循环。
Write a program to count the occurrences of each letter in an array of characters.
以下是一个C语言程序,可以对给定的字符数组进行遍历,并计算每个字母在数组中出现的次数:
```
#include <stdio.h>
#include <ctype.h>
int main() {
char arr[] = "Hello World!";
int count[26] = {0}; // 用于存储每个字母出现的次数
int i;
for (i = 0; arr[i] != '\0'; i++) {
if (isalpha(arr[i])) { // 判断当前字符是否为字母
count[tolower(arr[i]) - 'a']++; // 将字母转换为小写,然后将计数器加1
}
}
printf("Letter frequencies:\n");
for (i = 0; i < 26; i++) {
if (count[i] > 0) {
printf("%c: %d\n", 'a' + i, count[i]); // 输出每个字母和它出现的次数
}
}
return 0;
}
```
在这个程序中,我们首先声明了一个字符数组 `arr`,然后使用一个长度为26的整型数组 `count` 来记录每个字母出现的次数,初始化为0。接下来,我们使用一个循环遍历字符数组,并在遍历过程中判断当前字符是否为字母。如果是字母,则将计数器数组中相应的位置加1。
最后,我们再次遍历计数器数组,并输出每个字母和它出现的次数。注意,在输出字母时,我们需要将它转换为字符形式,即将其加上字符 'a'。
阅读全文
相关推荐















