每日一题
每日一题
____
请编写函数char *fun(char *str,int m),实现将输入的字符串每个字符“循环左移”m位。例如,输入“ABCDE”,则循环左移2位应输出“CDEAB”,若输入“1234567”,则循环左移3位输出“4567123”。在主函数中实现输入,调用函数fun,然后输出。
.
.
#include <string.h>
/*--------------------------------do-------------------------------*/
char *fun(char *str,int m){
for (int j = 0; j < m; j++) {
for (int i = 0;; i++) {
static char temp = 0;
if (i == 0) {
temp = str[i];
}
if (str[i + 1] != '\0') {
str[i] = str[i + 1];
}
else {
str[i] = temp;
break;
}
}
}
return str;//注意返回值是char*类型
}
/*--------------------------------do-------------------------------*/
void main(){
char s[100];
int m;
printf("Please input string:");
scanf("%s",s);
printf("Enter m:");
scanf("%d",&m);
if(m>strlen(s)){
printf("\nData error.\n");
return;
}
printf("Result is %s\n",fun(s,m));
}
多加一题
____
编写程序,从键盘输入一串以“#”为结束符的字符串,并写入文本文件file.txt中。
.
.
#include<stdio.h>
int main(){
FILE *fp=fopen("text3.txt","w"); //打开文件往里面写入“w”
char str[32];
gets(str); //先用键盘写入保存在一个字符数组str中。
char* p;
p = str; //因为str不能自加,可以用指针p指向str
while (*p != '\0') { //判断'\0'结尾,如果遇见'#',用'\0'切断,使成为新的字符串,比如abc##che ,截断后str字符串就变成了abc
if (*p == '#') {
*p = '\0';
}
p++;
}
fprintf(fp,"%s", str); //将abc“打印”到文件中。
fclose(fp); //关闭文件
}
常用文件函数:
引用文本
fclose()函数
fread()函数
fwrite()函数
fscanf()函数
fprintf()函数
fgets()函数
fputs()函数
fgetc()函数
fputc()函数
fseek()函数
rewind()函数
ftell()函数
ferror()函数
feof()函数
引用文本
fopen()函数—-fopen(文件路径, 文件使用方式);
1 FILE *fp;
2 fp = fopen(“E:\ww.txt”, “r”);
fopen_s()函数—-fopen_s(指向该文件指针的指针, 文件路径, 文件使用方式);
1 errno_t err;
2 err = fopen_s(&fp, “E:\ww.txt”, “r”);
fread()函数—-fread(内存首地址, 数据块大小, 数据块个数, 文件指针);
1 char ss[20];
2 fread(ss, sizeof(char), 4, fp);
fwrite()函数—-fwrite(内存首地址, 数据块大小, 数据块个数, 文件指针);
1 char ss[20] = “aabb”;
2 fwrite(ss, sizeof(char), 4, fp);
fscanf_s()函数—-fscanf_s(文件指针, 格式参数, 存入地址, 字节数)
1 fscanf_s(fp, “%c”, &c,sizeof(char));
fprintf()函数—-fprintf(文件指针, 格式参数, 输出列表)
1 char c = ‘a’;
2 fprintf(fp, “%c”, c);
fseek()函数—-fseek(文件指针, 指针偏移量, 起始位置);
1 fseek(fp, sizeof(char), SEEK_SET);
fgets()函数—-fgets(内存首地址, 字符数, 文件指针);
1 char ss[20];
2 fgets(ss, 20, fp);
fgetc()函数—-fgetc(文件指针);
1 char ss[20];
2 ss[0] = fgetc(fp);
3 printf(“%c”, ss[0]);
fputc()函数—-fputc(变量名, 文件指针)
1 int c = ‘a’;
2 fputc(c, fp);
也可写成
fputc(‘c’, fp);
fputs()函数—-fputs(字符串, 文件指针)
1 char ss[20] = “aaaa”;
2 fputs(ss, fp);
也可写成
1 fputs(“aaaa”, fp);