poj 2039 To and Fro【字符数组操作】

这道题同样没有太多好说的,总之要细心就好了!

AC的代码:

#include <stdio.h>
#include <string.h>

//先输入到一个字符数组之后在进行处理

char letters[22][202];//第一行代表列
char myInput[202];

void testPrint(int n)
{
	//测试输出
	int i,j;
	for(j=0;j<(int)strlen(myInput)/n;j++)
	{
		for(i=0;i<n;i++)
		{
			printf("%c ",letters[i][j]);
		}
		printf("\n");
	}
}

void process(int N)
{
	int row; //行数

	int i=0;
	int j;
	while(i<(int)strlen(myInput))
	{
		//先判断行数奇偶,确定输入方向
		row=i/N;
		if (row%2==0)
		{
			//正向输入
			for(j=0;j<N;j++)
			{
				letters[j][row]=myInput[i];
				i++;
			}
		}

		else
		{
			//反向输入
			for(j=N-1;j>=0;j--)
			{
				letters[j][row]=myInput[i];
				i++;
			}
		}
	}

	//转换完毕,测试输出
	//testPrint(N);     //ok
}

void Print(int n)
{
	int i,j;
	for(i=0;i<n;i++)
	{
		for(j=0;j<(int)strlen(myInput)/n;j++)
		{
			printf("%c",letters[i][j]);
		}
	}
	printf("\n");
}

int main()
{
	int N;//代表输入的字符数组排成多少列
	while(~scanf("%d",&N) && N!=0)
	{
		scanf("%s",myInput);

		//将输入的数组变成二维字符数组
		process(N);

		//正式输出
		Print(N);
	}

	return 0;
}
时间: 2024-08-01 21:08:59

poj 2039 To and Fro【字符数组操作】的相关文章

第15周报告2: 操作字符数组

任务2(字符数组和字符串):给出一个字符数组char str[],在程序中赋初值为一个句子,例如char str[]="he threw threefree throws",自编函数完成下面的功能: (1)求出字符数组中字符的个数(从第一个字符读起,直到读到'\0'结束计数)(对于例句,输出为26): (2)计算句子中各字符出现的频数 算法提示: (a) i=0 (b)取字符串中的第i个符号c (c)如果在c未在i之前出现过,在i位置上是第一次出现,频数f=1,从i+1位置到字符串结束

指针-c语言中字符数组初始化问题

问题描述 c语言中字符数组初始化问题 字符数组初始化1: char str[]=""123"";//不报错2: char str[4]; str=""123"";//不能将const char[4] to char[4]字符指针初始化1: char *str=""123"";//不报错2: char *str; str=""123"";//不报错求

java io学习(十七) CharArrayReader(字符数组输入流)

CharArrayReader 介绍 CharArrayReader 是字符数组输入流.它和ByteArrayInputStream类似,只不过ByteArrayInputStream是字节数组输入流,而CharArray是字符数组输入流.CharArrayReader 是用于读取字符数组,它继承于Reader.操作的数据是以字符为单位! CharArrayReader 函数列表 CharArrayReader(char[] buf) CharArrayReader(char[] buf, in

java新手关于字符数组的问题

问题描述 java新手关于字符数组的问题 对于这段代码: public class Stringtest01 { public static void main(String[] args) { char[] charArray = {'e','f','g','h'}; System.out.print("charArray:"); System.out.println(charArray); System.out.println("charArray:"+ cha

JavaScript jQuery 中定义数组与操作及jquery数组操作_jquery

首先给大家介绍javascript jquery中定义数组与操作的相关知识,具体内容如下所示: 1.认识数组 数组就是某类数据的集合,数据类型可以是整型.字符串.甚至是对象 Javascript不支持多维数组,但是因为数组里面可以包含对象(数组也是一个对象),所以数组可以通过相互嵌套实现类似多维数组的功能 1.1 定义数组 声明有10个元素的数组 复制代码 代码如下: var a = new Array(10); 此时为a已经开辟了内存空间,包含10个元素,用数组名称加 [下标] 来调用,例如

malloc-C语言中的字符指针操作问题,如何释放字符指针空间?

问题描述 C语言中的字符指针操作问题,如何释放字符指针空间? 源码如下: #include #include #include void main() { char s1; char *s2 = "bbb"; char *s3 = "ccc"; s1 = (char)malloc(sizeof(s2)); strcpy(s1, s2); strcat(s1, s3); //free(s2); //free(s3); printf("%s ", s

c语言字符数组与字符串的使用详解_C 语言

1.字符数组的定义与初始化字符数组的初始化,最容易理解的方式就是逐个字符赋给数组中各元素.char str[10]={ 'I',' ','a','m',' ','h','a','p','p','y'};即把10个字符分别赋给str[0]到str[9]10个元素如果花括号中提供的字符个数大于数组长度,则按语法错误处理:若小于数组长度,则只将这些字符数组中前面那些元素,其余的元素自动定为空字符(即 '\0' ). 2.字符数组与字符串在c语言中,将字符串作为字符数组来处理.(c++中不是)在实际应用

语言-关于一个字符数组的问题

问题描述 关于一个字符数组的问题 假如我定义了一个char name[40],跟据书中的描述,一个字符串是以''结尾, 我的问题是,这个也要占一个字节,那么这个是在40数组中的最后一个呢?也就是 说实际上程序只允许我有39个字符,还是放在我定义的字符数组以外呢? 解决方案 char name[40]是一个字符数组,并不是字符串,你可以写一个小程序测一下就明白了 解决方案二: 你说的很对,只能保存39个. 解决方案三: 难道你的字符串中会有''字符.你是不是要把字符串变成字符数组,或者字符数组变成

c 字符串输入-c语言中如何动态输入字符串而不需要事先定义字符数组大小

问题描述 c语言中如何动态输入字符串而不需要事先定义字符数组大小 如标题 c语言中如何动态输入字符串而不需要事先定义字符数组大小或为字符指针分配空间 解决方案 你这个要求实际使用度太低,或者说,完全没有必要非要这样去想. 解决方案二: c语言中字符串与字符数组c语言中的字符数组与字符串C语言 字符数组和字符串 解决方案三: 你这样定义好了char *p; 解决方案四: #include #include #include #define Step 10 //空间增加的步长. char * get