首先輸入兩個整數m,n,分別代表行數和長度
要求輸出,將字串截短成n長,不夠補0,多了換行繼續輸出
如輸入:
2,8
1234567812345678123
asd
輸出
12345678
12345678
12300000
代碼寫了一點不會寫了
int main()
{
int m;//存放輸入字串的總行數
int n=8;//存放固定的字符長度
int len;
int rest;
int row;
int count;
char str[100]; //存放輸入的字串
char temp[100][100];
for (int i = 0; i < 100;i++)
for (int j = 0; j < 100; j++)
{
temp[i][j] = '\0';
//str[i][j] = '\0';
//puts(temp[i]);
}
scanf_s("%d", &m);
printf_s("請輸入字串\n");
for (int i = 0; i < m; i++)
{
char c;
int j = 0;
scanf_s("%s", str);
/*while ((c = getchar()) != '\n')
{
str[i][j++] = c;
}
getchar();*/
}
//int index = 0;
//for (int j = 0; j < m; j++)
//{
// len = strlen(str[j]);
// row = len / n;
// if (row)//如果長度超過固定長度
// {
// //count = n-1;
// rest = len%n;
// for (int k = 0; k < row; k++)
// {
// for (int i = 0; i < strlen(str[i]); )
// {
// strncpy_s(temp[index],1, &str[k][i],n);
// index++;
// i = i + n;
// }
//
//
// }
// for (int i = 0; i < row; i++)
// {
// puts(temp[i]);
// }
//
// }
//
//
// }
}
uj5u.com熱心網友回復:
先用row = len / n;計算有多少個滿行,然后依次輸出各個滿行,最后用nLenLeft = len % n計算一下還剩多少個字符,如果不為0,把剩余字符復制到輸出緩沖區中,剩余的長度用0填充就行了uj5u.com熱心網友回復:
我也是那么想的但是程式寫不對
uj5u.com熱心網友回復:
這道是華為今年的機試題吧?樓主在準備華為機試?我自己編的,貼出來大家幫忙找找有沒有Bug
/*
問題描述
首先輸入兩個整數m,n,分別代表行數和長度,要求輸出,將字串截短成n長,不夠補0,多了換行繼續輸出
如輸入:
2,8
1234567812345678123
asd
輸出
12345678
12345678
12300000
asd00000
輸入(這組輸入是Bug殺手)
3,3
1234567891
abcdefgh
012034
輸出
123
456
789
100
abc
def
gh0
012
034
*/
#include"stdio.h"
#include"string.h"
#include"malloc.h"
#include"stdlib.h"
#define M 100 //默認每行長度不超過100
void main()
{
int m,n;
int i,j,k;
scanf("%d",&m);
scanf("%d",&n);
char *p=(char *)malloc(sizeof(char)*M*m);//為m行分別開辟M個存盤單元
for(i=0;i<m;i++)
scanf("%s",p+i*M);//利用指標輸入m行字串
//截斷輸出
for(i=0;i<m;i++)
{
for(j=0;j<M;j++)
{
if((j+1)%n!=0&&(*(p+i*M+j))!='\0')
printf("%c",*(p+i*M+j));
else
if((j+1)%n==0&&(*(p+i*M+j))!='\0')
{
printf("%c",*(p+i*M+j));
printf("\n");
}
else //遇到'\0'
if((j%n))//此時j等于該行字符個數
{
for(k=j%n;k<n;k++) //不足補0
printf("0");
printf("\n");
break; //別忘了break,因為M可能大于串的長度
}
else
break; //該字串剛剛夠截斷
}
}
free(p);
p=NULL;
}
uj5u.com熱心網友回復:
#include <stdio.h>
#include <STRING.H>
int main()
{
char a[]="012034";
int m, n, i=0, j;
scanf("%d,%d", &m, &n);
char *p;
p = a;
while(*p != '\0')
{
if (i < n)
{
printf("%c", *p);
p++;
i++;
}
else
{
printf("%c", '\n');
i=0;
}
}
if (i < n)
{
for (j=0; j<n-i; j++)
{
putchar('0');
}
}
}
uj5u.com熱心網友回復:
t我沒準備同學問我的,他去參加了,難道你也去參加了么?
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/115929.html
標籤:基礎類
上一篇:COCOS2D-X坐標
