1.1-n全排列
#include<stdio.h>
#include<time.h>
void print_permutation(int n,int *A,int cur){
int i,j;
if(cur==n){
for(i=0;i<n;i++)
printf("%d",A[i]);
printf("\n");
}
else for(i=1;i<=n;i++){
int ok=1;
for(j=0;j<cur;j++){
if(A[j]==i)
ok=0;
}
if(ok){
A[cur]=i;
print_permutation(n,A,cur+1);//递归调用
}
}
}
int main(){
int n;
int A[1000];
printf("input the n:");
scanf("%d",&n);
print_permutation(n,A,0);
printf("time used:%.2lf\n",(double)clock()/CLOCKS_PER_SEC);//测试程序运行时间
return 0;
}
2.strncpy函数
strncpy函数,用来比较字符串B中,字符串A出现的情况判断(用循环可以实现统计次数)
规范解释:i为比较字符的数目
格式:int strncmp ( const char * A, const char * B, size_t i );
返回值:若A与B的前n个字符相同,则返回0;若A大于B,则返回大于0的值;若A 小于B,则返回小于0的值。
调用模板(连带字符串指针都贴上去):
char a[60],*s1,*s2,*ne;
scanf("%s",a);
int la=strlen(a);
int i;
cin>>i;//判断的长度
for(int j=0;j<=(循环长度);j++)
{
s1=&a[j];
for(int k=0;k<=(循环长度);k++)
{
s2=&a[k];
if(!strncmp(s1,s2,i))
{
//你的操作
}
}
}
3.字符串问题
输入操作一个字符串时,一定要考虑是否会输入空串,非空串可用string直接输入存储,若可能是空串,则用char字符数组,使用gets()函数输入,用strlen(数组名)询问长度