
#include<stdlib.h>
#include<string.h>
#define MAX_COLS 20 // 宏定义常量 MAX_COLS 为20
#define MAX_INPUT 1000// 宏定义常量 MAX_INPUT 为 1000
int read_column_numbers(int columns[],int max)
{
int num=0
int ch
while(num<max&&scanf("%d",&columns[num])==1&&columns[num]>=0)//判断输入的值是否为正数
num=num+1// 统计有好多个数
if(num%2!=0)//判断输入的个数是否是偶数
{
puts("Last column number is not paired.")
exit( EXIT_FALLURE)//没有成功地执行,强制结束程序
}
while((ch=getchar())!=EOF&&ch!='\n')
return num
}
void rearrange(char *output,char const *input,inst n_columns,int const column[])
{
int col
int output_col
int len
len=strlen(input)//计算字符串长度
output_col=0
for(col=0col<n_columnscol=col+2)
{
int nchars=columns[col+1]-columns[col]+1
if(columns[col]>=len||output_col==MAX_INPUT-1)
break
if(output_col+nchars>MAX_INPUT-1)
nchars=MAX_INPUT-output_col-1
strncpy(output+output_col,input+columns[col],nchars)
output_col=output_col+nchars
}
output[output_col]='\0'
}
int main()
{
int n_columns
int columns[MAX_COLS]
char input[MAX_INPUT]
char output[MAX_INPUT]
n_columns=read_column_numbers(columns,MAX_COLS)
while(gets(input)!=NULL)
{
printf("Original input :%S\n",input)
rearrange(output,input,n_columns,columns)
printf("Rearrange line:%s\n",output)
}
return EXIT_SUCCESS//执行成功
}
首先依次输入数字,当遇见负数时停止。此时如果输入的数字个数是奇数的话就输出"last column number is not paired”然后结束。如果输入的数字是偶数的话,再输入一个字符串,将输入的数字按顺序两个一组,后面的减去前面的加1,例如9-4+1,得到的此数如果小于字符串长度,就将这个字符串的第4个字符后面的9-4+1个字符复制到另一个字符串X,然后再进行下组个数,将通过下组个数得到的字符串复制到X的后面,依次进行直到两数之差大于字符串长度或者数没有了,然后输出字符串X
#include<stdio.h>#include<string.h>
char
*fun(char
*s,char
*t)//函数功能是在字符串S中找字符串T
{
char
*p,*r,*a
a=NULL//是一个标志,开始没查找到
//开始s=&s[0]
while(*s)//从S
的第一个字符开始查找,直到遇到'\0'
{
p=s
r=t
while(*r)//从T
的第一个字符开始查找,直到遇到'\0'
if(*r==*p)//如果在S字符串中找到了第一个
T字符串的T[0],
{
r++//在比较T[1]
t[2]....
p++//同上
}
else
break
if
(*r=='\0')
a=s//表明查找到了
s++
}
return
a//返回NULL没到到,否则找到了
}
main()
{
char
s[100],t[100],*p
printf("\n
please
enter
string
S:")
scanf("%s",&s)
printf("\n
please
enter
string
T:")
scanf("%s",&t)
p=fun(s,t)
if(p)//真,为找到了
printf("\n
the
result
is
:%s\n",p)
else
printf("\n
not
found!\n")
}
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)