題目:計算字符串中子串出現的次數
#include<cstdio>
#include<cstring>
char s1[20],s2[20],*p1,*p2;
int cnt;
// 全局變量默認初始值為0
// 這里其實可以通過kmp算法或者ac自動機算法實現
// 但是由于好久不寫了,就寫最簡單的算法吧
// 如果有興趣的話可以學一下hash,可以做很多字符串的事情
int main()
{
//這里默認s1為母串,s2為子串
scanf("%s%s",s1,s2);
p1=s1, p2=s2;
while(*p1 !='\0')
{
if(*p1==*p2)
{
while(*p1==*p2 && *p2 !='\0')
p1++,p2++;
}
else
p1++;
if(*p2=='\0')
cnt++;
p2=s2;//什么時候p2重置呢?
}
printf("%d",cnt);
}
題目:從鍵盤輸入一些字符,逐個把它們送到磁盤上去,直到輸入一個#為止。
#include<cstdio>
#include<cstdlib>
char ch,filename[10];
int main()
{
FILE *fp;//文件指針
scanf("%s",filename);
// 這里默認此文件與程序在同一文件夾
fp=fopen(filename,"w");
// 實際上如果找不到的話,這里會自動創建一個
// 要注意這個是相對路徑,如果要處理絕對路徑怎么辦?
if(fp==NULL)
{
printf("don't find file named\"%s\"",filename);
exit(0);//強制在此處終止程序
}
ch=getchar();//起到什么作用?
while((ch=getchar()) !='#')
{
// 不運行的話,下面的代碼哪個是寫入文件?
fputc(ch,fp);//寫入文件,會換行嗎?
putchar(ch);// 運行時候可以把這里注釋掉
}
fclose(fp);//記得關掉
}
題目:從鍵盤輸入一個字符串,將小寫字母全部轉換成大寫字母,然后輸出到一個磁盤文件“test”中保存。輸入的字符串以!結束。
#include<cstdio>
#include<cstdlib>
char str[100],filename[10];
int i;
int main()
{
FILE *fp;
fp=fopen("test","w");
if(fp==NULL)
{
printf("don't find file named\"%s\"",filename);
exit(0);//強制在此處終止程序
}
gets(str);//讀取一行字符串,要注意!結尾
// 大寫字母與小寫字母的ascii碼差32
while(str[i]!='!')
{
if(str[i] >='a' && str[i] <='z')
str[i]=str[i]- 32;
i++;
}
fprintf(fp,"%s",str);
//這個是直接向文件中輸出的
// 是追加還是覆蓋呢? 這個由什么決定?
// 由fopen的第二個參數決定https://www.runoob.com/cprogramming/c-function-fopen.html
fclose(fp);
}
題目:有兩個磁盤文件A和B,各存放一行字母,要求把這兩個文件中的信息合并(按字母順序排列),輸出到一個新文件C中。
#include<cstdio>
#include<cstdlib>
#include<cstring>
#define R register
// 最簡單的想法就是兩個同時讀入到一個字符數組,再利用排序算法進行排序
// 兩個代碼都是這樣的
// 這里先用不同的方法進行實現
// 可以先了解一下fgets函數
/*
fgets(str,n,fp);
str:指向一個字符數組的指針
n:要讀取的最大字符數(包括最后的空字符)
fp: 指向 FILE 對象的指針
*/
void sswap(R char &x, R char &y)
{
char t=x;
x=y;
y=t;
}
char a[100],b[100],c[200];
int main()
{
FILE *fp;
fp=fopen("A","r");
// 這個不會自動生成的
if(fp==NULL)
{
puts("don't find file \"A\"");
exit(0);//強制在此處終止程序
}
fgets(a,100,fp);
fclose(fp);
/*隔開*/
fp=fopen("B","r");
fgets(b,100,fp);
if(fp==NULL)
{
puts("don't find file \"B\"");
exit(0);//強制在此處終止程序
}
fclose(fp);
/*隔開*/
strcat(a,b);
int len=strlen(a);
for(R int i=1;i < len;i++)
for(R int j=0;j < len-1;j++)
if(a[j] > a[j+1])
sswap(a[j],a[j+1]);
fp=fopen("C","w");
fprintf(fp,"%s",a);
fclose(fp);
}
下面是書中使用的代碼:
#include<cstdio>
#include<cstdlib>
// 這里改了一下頭文件,調整了一下排版
// 基本原理相同
int main()
{
FILE *fp;
int i,j,n;
char c[160],t,ch;
if((fp=fopen("A","r"))==NULL)
{
printf("file A cannot be opened\n");
exit(0);
}
printf("\n A contents are :\n");
for(i=0;(ch=fgetc(fp)) !=EOF;i++)
{
c[i]=ch;
putchar(c[i]);
}
fclose(fp);
//分隔
if((fp=fopen("B","r"))==NULL)
{
printf("file B cannot be opened\n");
exit(0);
}
printf("\n B contents are :\n");
for(i=0;(ch=fgetc(fp)) !=EOF;i++)
{
c[i]=ch;
putchar(c[i]);
}
fclose(fp);
// 分隔
n=i;
for(i=0;i < n;i++)
for(j=i + 1;j < n;j++)
if(c[i] > c[j])
{
t=c[i];
c[i]=c[j];
c[j]=t;
}
printf("\n C file is:\n");
fp=fopen("C","w");
for(i=0;i < n;i++)
{
putc(c[i],fp);
putchar(c[i]);
}
fclose(fp);
}
題目:有五個學生,每個學生有3門課的成績,從鍵盤輸入以上數據(包括學生號,姓名,三門課成績),計算出平均成績,況原有的數據和計算出的平均分數存放在磁盤文件"stud"中。
0
本例參考了網上的例子,唯一不一樣的是,我這里的操作是一步一步講解,網上僅是源碼。
一、我們先創建一張空白的網頁,網頁要自適應手機。
圖1
二、我們再創建網頁的頭部。
圖2
圖3
三、做出來的網頁頭部太丑了,我們要去掉盒子與瀏覽器的間隙,還有給頭部加內部距離。
圖4
圖5
四、給網頁頭部添加一些內容。
圖6
圖7
五、接下來開始做導航條了。
圖8
圖9
六、發現沒,導航條居然看不見,沒有東西在里面自然是看不見的,我們加三個鏈接吧。
圖10
圖11
七、這回是看見了,不過樣式太丑,我們改改樣式。
圖12
圖13
八、加上內部距離,就好看了許多,即然是鏈接,我們加點動態吧,當鼠標在鏈接上面時,鏈接塊變色。
圖14
圖15
九、開始做網頁內容,網頁內容我分為三塊,左右兩邊是側欄,中間是主要內容。
圖16
圖17
十、我想讓它橫著排,它卻是豎著排,改改各個塊的樣式。
圖18
圖19
十一、給主體的各個塊加點內容。
圖20
圖21
十二、內容是有了,但你會發現各塊之間沒有間隙,貼得太近了,我們改一下樣式,加個內部距離。
圖22
圖23
十三、距離是有了,但有一個側欄跑到了另一行,怎么回事?原來padding是會改變盒子的整體寬度,我們原本是100%,現在多了padding的寬度,自然就換行了,解決一下吧。
圖24
圖25
十四、這回終于在一行了,接下來可以做網頁底部了。
圖26
圖27
十五、改改樣式,讓底部好看一點。
圖28
圖29
十六,這個時候,網頁的整體版面就完成了,再補充一個小內容,讓網頁瀏覽器在小于600像素寬的時候,主體內容的三個塊由橫變豎。
圖30
圖31
題目:計算字符串中子串出現的次數
#include<cstdio>
#include<cstring>
char s1[20],s2[20],*p1,*p2;
int cnt;
// 全局變量默認初始值為0
// 這里其實可以通過kmp算法或者ac自動機算法實現
// 但是由于好久不寫了,就寫最簡單的算法吧
// 如果有興趣的話可以學一下hash,可以做很多字符串的事情
int main()
{
//這里默認s1為母串,s2為子串
scanf("%s%s",s1,s2);
p1=s1, p2=s2;
while(*p1 !='\0')
{
if(*p1==*p2)
{
while(*p1==*p2 && *p2 !='\0')
p1++,p2++;
}
else
p1++;
if(*p2=='\0')
cnt++;
p2=s2;//什么時候p2重置呢?
}
printf("%d",cnt);
}
題目:從鍵盤輸入一些字符,逐個把它們送到磁盤上去,直到輸入一個#為止。
#include<cstdio>
#include<cstdlib>
char ch,filename[10];
int main()
{
FILE *fp;//文件指針
scanf("%s",filename);
// 這里默認此文件與程序在同一文件夾
fp=fopen(filename,"w");
// 實際上如果找不到的話,這里會自動創建一個
// 要注意這個是相對路徑,如果要處理絕對路徑怎么辦?
if(fp==NULL)
{
printf("don't find file named\"%s\"",filename);
exit(0);//強制在此處終止程序
}
ch=getchar();//起到什么作用?
while((ch=getchar()) !='#')
{
// 不運行的話,下面的代碼哪個是寫入文件?
fputc(ch,fp);//寫入文件,會換行嗎?
putchar(ch);// 運行時候可以把這里注釋掉
}
fclose(fp);//記得關掉
}
題目:從鍵盤輸入一個字符串,將小寫字母全部轉換成大寫字母,然后輸出到一個磁盤文件“test”中保存。輸入的字符串以!結束。
#include<cstdio>
#include<cstdlib>
char str[100],filename[10];
int i;
int main()
{
FILE *fp;
fp=fopen("test","w");
if(fp==NULL)
{
printf("don't find file named\"%s\"",filename);
exit(0);//強制在此處終止程序
}
gets(str);//讀取一行字符串,要注意!結尾
// 大寫字母與小寫字母的ascii碼差32
while(str[i]!='!')
{
if(str[i] >='a' && str[i] <='z')
str[i]=str[i]- 32;
i++;
}
fprintf(fp,"%s",str);
//這個是直接向文件中輸出的
// 是追加還是覆蓋呢? 這個由什么決定?
// 由fopen的第二個參數決定https://www.runoob.com/cprogramming/c-function-fopen.html
fclose(fp);
}
題目:有兩個磁盤文件A和B,各存放一行字母,要求把這兩個文件中的信息合并(按字母順序排列),輸出到一個新文件C中。
#include<cstdio>
#include<cstdlib>
#include<cstring>
#define R register
// 最簡單的想法就是兩個同時讀入到一個字符數組,再利用排序算法進行排序
// 兩個代碼都是這樣的
// 這里先用不同的方法進行實現
// 可以先了解一下fgets函數
/*
fgets(str,n,fp);
str:指向一個字符數組的指針
n:要讀取的最大字符數(包括最后的空字符)
fp: 指向 FILE 對象的指針
*/
void sswap(R char &x, R char &y)
{
char t=x;
x=y;
y=t;
}
char a[100],b[100],c[200];
int main()
{
FILE *fp;
fp=fopen("A","r");
// 這個不會自動生成的
if(fp==NULL)
{
puts("don't find file \"A\"");
exit(0);//強制在此處終止程序
}
fgets(a,100,fp);
fclose(fp);
/*隔開*/
fp=fopen("B","r");
fgets(b,100,fp);
if(fp==NULL)
{
puts("don't find file \"B\"");
exit(0);//強制在此處終止程序
}
fclose(fp);
/*隔開*/
strcat(a,b);
int len=strlen(a);
for(R int i=1;i < len;i++)
for(R int j=0;j < len-1;j++)
if(a[j] > a[j+1])
sswap(a[j],a[j+1]);
fp=fopen("C","w");
fprintf(fp,"%s",a);
fclose(fp);
}
下面是書中使用的代碼:
#include<cstdio>
#include<cstdlib>
// 這里改了一下頭文件,調整了一下排版
// 基本原理相同
int main()
{
FILE *fp;
int i,j,n;
char c[160],t,ch;
if((fp=fopen("A","r"))==NULL)
{
printf("file A cannot be opened\n");
exit(0);
}
printf("\n A contents are :\n");
for(i=0;(ch=fgetc(fp)) !=EOF;i++)
{
c[i]=ch;
putchar(c[i]);
}
fclose(fp);
//分隔
if((fp=fopen("B","r"))==NULL)
{
printf("file B cannot be opened\n");
exit(0);
}
printf("\n B contents are :\n");
for(i=0;(ch=fgetc(fp)) !=EOF;i++)
{
c[i]=ch;
putchar(c[i]);
}
fclose(fp);
// 分隔
n=i;
for(i=0;i < n;i++)
for(j=i + 1;j < n;j++)
if(c[i] > c[j])
{
t=c[i];
c[i]=c[j];
c[j]=t;
}
printf("\n C file is:\n");
fp=fopen("C","w");
for(i=0;i < n;i++)
{
putc(c[i],fp);
putchar(c[i]);
}
fclose(fp);
}
題目:有五個學生,每個學生有3門課的成績,從鍵盤輸入以上數據(包括學生號,姓名,三門課成績),計算出平均成績,況原有的數據和計算出的平均分數存放在磁盤文件"stud"中。
*請認真填寫需求信息,我們會在24小時內與您取得聯系。