Chủ đề: Bài tập C
-
14-07-2016, 02:55 PM #1Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
Bài tập C
em nhập lựa chọn 1,2,3,4 thì str1 không nhập vào được, còn str2 thì nhập vào được, em không biết sai lỗi nào mọi người giúp em với ạ [IMG]images/smilies/21.gif[/IMG]
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
void nhap(char str1[255],char str2[255])
{
printf("nhap chuoi str1: ");
gets(str1);
printf("
chuoi str1 vua nhap: %s",str1);
printf("
nhap chuoi str2: ");
gets(str2);
printf("
chuoi str2 vua nhap: %s",str2);
}
void STRSTR(char str1[255],char str2[255])
{
char*p;
int dem=0;
p=strstr(str1,str2);
while(p)
{
dem++;
p++;
p=strstr(p,str2);
}
}
void ghep(char str1[255],char str2[255],char str[255])
{
int len1,len2,len,i,n;
len1=strlen(str1);
len2=strlen(str2);
len=len1+len2;
for(i=0;i<n;i++)
{
str[i]=str1[i];
}
for(i=n;i<n+len2;i++)
{
str[i]=str2[i-n];
}
for(i=n+len2;i<len;i++)
{
str[i]=str1[i-len2];
}
str[len]=0;
}
void xoakitu(char str1[255],int vitri,int soluong)
{
if(vitri+soluong-1>strlen(str1))
{
str1[0]=NULL;
}
else
{
while(str1[vitri+soluong]!=NULL)
{
str1[vitri]=str1[vitri+soluong];
vitri++;
}
str1[vitri]=NULL;
}
}
void nhap(char str1[255],char str2[255]);
void STRSTR(char str1[255],char str2[255]);
void ghep(char str1[255],char str2[255],char str[255]);
void xoakitu(char str1[255],int vitri,int soluong);
int main(int argc, char *argv[])
{
char str1[255];
char str2[255];
char str[255];
int dodai,dem=0;
int n;
int vitri,soluong;
int luachon;
printf("==========MENU==========
");
printf("
1. Nhap hai chuoi str1 va str2(moi chuoi khong qua 255 ky tu va chieu dai cua str2<=str1)
");
printf("
2. Dem so lan chuoi str2 xuat hien trong chuoi str1
");
printf("
3. Chen chuoi str2 vao chuoi str1 tai vi tri duoc nhap tu ban phim
");
printf("
4. Xoa 1 ky tu trong chuoi str1 voi so ky tu va vi tri can xoa duoc nhap tu ban phim
");
printf("
nhap lua chon: ");
scanf("%d",&luachon);
switch(luachon)
{
case 1:
nhap(str1,str2);
break;
case 2:
nhap(str1,str2);
STRSTR(str1,str2);
printf("so lan chuoi %s co mat trong chuoi %s la: %d
",str2,str1,dem);
break;
case 3:
nhap(str1,str2);
printf("nhap vi tri can chen chuoi str2 vao chuoi str1: ");
scanf("%d",&n);
ghep( str1, str2, str);
printf("chuoi str1 => %s
chuoi str2 => %s
chuoi str ==> %s
",str1,str2,str);
break;
case 4:
printf("nhapchuoi 1 => ");
gets(str1);
printf("chuoi str1 vua nhap la: %s",str1);
printf("nhap vi tri can xoa: ");
scanf("%d",&vitri);
printf("
nhap so luong can xoa: ");
scanf("%d",&soluong);
xoakitu(str1,vitri,soluong);
printf("ket qua xoa ki tu => %s",str1);
break;
}
getch();
return 0;
}View more random threads:
- Bài toán nhập dữ liệu từ file. Mọi người giúp em với ạ? em bó tay bài này 3 ngày nay rồi(người mới)! Cảm ơn mọi người nhiều.
- Lỗi khi sử dụng vòng lặp while
- Bài tập lập trình hướng đối tượng cần giúp đỡ
- Để trở thành một lập trình viên
- tăng (+1) khác toán tử ++ như thế nào?
- Sắp xếp thự tự trong mảng
- Giúp em bày này vs....sao em nhập vào có những trường hợp Điểm xuất ra lại đúng, có trường hợp điểm xuất ra là sai
- Code từ điển ko lấy đc dữ liệu trong tệp
- Cần giúp đỡ về Khai báo trong C++
- TC bị lỗi
-
17-07-2016, 07:33 PM #2Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
Nguyên nhân: str1 không nhập vào được là vì trên stdin có dư dữ liệu dẫn đến hiện tượng trôi lệnh, vì vậy mà để có thể nhập dc cho str1 thì bạn làm sạch tệp stdin và bộ đệm buffer đi, bằng cách dùng lệnh
fflush(stdin);
Đối với code trên của bạn thì thêm fflush(stdin); vào trên lệnh printf("nhap chuoi str1: "); là được
Mã:... void nhap(char str1[255],char str2[255]){ fflush(stdin); //Add them printf("nhap chuoi str1: "); gets(str1); printf(" chuoi str1 vua nhap: %s",str1); printf(" nhap chuoi str2: "); gets(str2); printf(" chuoi str2 vua nhap: %s",str2); } ...
Rocket 1h là thực phẩm chức năng giúp tăng cường sinh lý nam có nguồn gốc hoàn toàn từ dược liệu tự nhiên. Rất nhiều nam giới đã tuyển lựa Rocket 1h như một phương thuốc hữu hiệu để cải thiện tình...
Nguyên nhân của cặp đôi nam nữ mua...