C语言打印二维字符数组

C语言不经常用,都快忘了。平时还得多用才熟练啊!

#include<stdio.h>

void func1(int m , char *str[]){
	int i =0 ; 
	printf("%s\n", "int func1------");
	for(; i<m ; i++){

		printf("%s\n", str[i]);
	}
}

void func2(int m , char **str){
	int i =0 ; 
	printf("%s\n", "int func2------");
	for(; i<m ; i++){

	printf("%s\n", *(str+i));
	}
}

void func3(int m , char str[][8]){
	int i =0 ; 
	printf("%s\n", "int func3------");
	for(; i<m ; i++){

		printf("%s\n", str[i]);
	}

}

int main(int argc , char *args[] ){
	char *Country1[] = { "China",  "Russia", "America"} ;
	func1(3 , Country1) ;
	func2(3 ,&Country1[0]) ;
	char Country2[][8] ={ "China",  "Russia", "America"} ;
	func3(3 , Country2) ;

}

因为需要传入每个字符串的最大值,所以func3有局限性,不建议使用。func1最容易理解。

时间: 2024-08-28 06:12:42

C语言打印二维字符数组的相关文章

输入5个学生的名字(英文),使用冒泡排序按从大到小排序。 提示:涉及到字符串数组,一个字符串是一个一维字符数组;一个 字符串数组就是一个二维字符数组。

#include <stdio.h>#include <string.h> /*输入5个学生的名字(英文),使用冒泡排序按从大到小排序.提示:涉及到字符串数组,一个字符串是一个一维字符数组:一个字符串数组就是一个二维字符数组.*/ void main(){ char stuNames[5][100]; char tmp[100]; int i = 0,j = 0; for(i = 0; i < 5; i++) { printf("请输入第%d个学生的名字:"

字符串分割到二维字符数组中:

/* *字符串分割,把一个长的字符串(可能有空格),分割到一个二维字符数组中. *并且输出 * *时间复杂度O(N) *注意在操作二维字符串数组时:使用"数组指针"操作能方便 int(*p)[LEN]; * */ #include<stdio.h> #include<string.h> #include<stdlib.h> #include<stdbool.h> #define NDEBUG #include<assert.h>

C二维字符数组的使用及如何获取二维数组的总行数和总列数!

#include <stdio.h> #include <stdlib.h> int main(){ char str[][30] = {"zhangsan","lisi","wangwu"}; char (*p)[30] = str; //定义行指针 printf("%p %p %p 行数:%d 列数:%d\n",str, &str[0], &str[0][0], sizeof(str

C语言中二维字符数组的定义和初始化

本篇日志关于二维字符数组的定义和初始化.我相信这篇文章属于菜鸟级的,高手请直接无视. 一般来说,我们可能会希望定义一个二维字符数组并且在定义的时候就用一些字符串来初始化它.比如说: 1 char testcase[30][MAX_LENGTH] = {"jo","vicent","tom","honey","gigi","lily","susan","pet

sort对二维字符数组排序(转)

由于二维字符数组的第二维没有赋值运算符,即不能对整个一维数组进行赋值,因此是无法直接对二维数组用sort进行排序的,解决办法有二种: 代码一: 1 #include <iostream> 2 #include <cstring> 3 #include <algorithm> 4 using namespace std; 5 6 struct Data 7 { 8 char data[100]; 9 }str[100]; 10 11 bool cmp(const Data

顺时针和逆时针螺旋打印二维数组(行列式)

一.要求: 行列式,行和宽不一定相等,要求顺时针螺旋打印每一个元素,所谓顺时针螺旋即: 第一圈:从第一行第一列元素开始,先从左到右打印第一行所有元素,接着打印最后一剩余列元素,再从右到左打印最后一行剩余元素,接着从下到上打印第一列剩余元素 第二圈:从第二行第二列开始,按上面的顺时针顺序打印一圈元素 ...,一圈圈反复,直到把所有元素无重复的打印完. 逆时针螺旋与上面的顺序刚好相反. 二.分析: 顺时针螺旋打印可以将问题分割为:先按顺时针打印第一圈,再按顺时针打印第二圈,其中每圈又分四个步骤:从左

C语言动态分配二维数组内存

C语言内存管理主要包括malloc().remalloc().free()三个函数. malloc原型 extern void *malloc(unsigned int num_bytes); m行n列的 二维数组的分配,主要有三种方法: 一.分配一个长度为m的二级指针,指针的指向的内容分别指向一个长度为n的一位数组 #include<stdio.h> #include<stdlib.h> #include<string.h> #include<math.h>

一个for循环打印二维数组

#include<stdio.h> #define MAXX 2 #define MAXY 3 void printarray() { int Arr[MAXX][MAXY] = {1,2,3,4,5,6}; for(int i = 0;i< MAXX*MAXY;i++) { printf("%d\n",Arr[i/MAXY][i%MAXY]); ///注意,一直没管MAXX什么事,在计算这一类的时候,最容易出问题 } } 一个for循环打印二维数组

在主方法中定义一个大小为10*10的二维字符型数组,数组名为y,正反对角线上存的是‘*’,其余 位置存的是‘#’;输出这个数组中的所有元素。

//在主方法中定义一个大小为10*10的二维字符型数组,数组名为y,正反对角线上存的是‘*’,其余 位置存的是‘#’:输出这个数组中的所有元素. char [][]y=new char [10][10]; for(int i=0;i<10;i++) { for(int j=0;j<10;j++) { if(i==j||i+j==9) { y[i][j]='*'; } else { y[i][j]='#'; } } } for(int i =0;i<10;i++) { for(int k