30/09/2018, 18:58

Không xuất ra chuỗi trong hàm c/c++

mình đang làm bài tập về sử dụng hàm , phần mảng thì mình nhập vào và xuất ra bình thường . còn phần chuỗi mình cũng làm tương tự nhưng lúc chạy thì không nhập chuỗi vào được ( mình khai báo bằng hàm void ) . giúp mình nha , tks nhiều

viết 21:01 ngày 30/09/2018

Bạn phải đưa code lên đây thì m.n mới giúp đc chứ.

Leng Keng viết 20:59 ngày 30/09/2018

không hiểu bạn hỏi cái j nữa.:))

Nhóc Lãng Tử viết 21:14 ngày 30/09/2018
#include "stdafx.h"
#include<iostream>
#include<math.h>
#include<conio.h>
#include<string.h>
#include<stdlib.h>
using namespace std;
	// BÀI TẬP CHUỖI
// nhâp chuỗi
void inc(char s[]);
//  1 - kiem tra chuoi chuan
void cchuan(char s[]);
//	2 - dem tu trong chuoi chuan
void cchuan(char s[]);
//	3 - dem tu trong chuoi bat ki
void cchuan(char s[]);
//	4 - chuan hoa chuoi
void cchuan(char s[]);
//	5 - viet hoa ki tu dau moi chuoi
void cchuan(char s[]);
//	6 - dem so luong cac ki tu la nguyen am
void cchuan(char s[]);
//	7 - dem so nguyen am phan biet
void cchuan(char s[]);
//	8 - tinh tong cac ki tu so
void cchuan(char s[]);
//	9 - tinh tong cac so nguyen duong
void cchuan(char s[]);
//	10 - dem so luong tu bat dau bang 1 nguyen am
void cchuan(char s[]);
//	11 - kiem tra chuoi co chua toan chu so khong
void cchuan(char s[]);
//	12 - dem so luong tu chua it nhat 2 nguyen am
void cchuan(char s[]);
//	13 - tim ki tu xuat hien nhieu lan nhat
void cchuan(char s[]);
//	14 - tim tu dai nhat
void cchuan(char s[]);
//	15 - dao nguoc thu tu cac tu trong chuoi
void cchuan(char s[]);
int _tmain(int argc, _TCHAR* argv[])
{
	do{
char s[20];
// BÀI TẬP CHUỖI
		cout << " nhap chuoi ki tu : ";
		cin.getline(s, 50);
		cout << " chuoi vua nhap ";
		cout << "*" << s << "*" << endl;
		//  1 - kiem tra chuoi chuan
		void cchuan(char s[]);
		//	2 - dem tu trong chuoi chuan
		void cchuoichuan(char s[]);
		//	3 - dem tu trong chuoi bat ki
		void demtucbatki(char s[]);
		//	4 - chuan hoa chuoi
		void chuanhoachuoi(char s[]);
		//	5 - viet hoa ki tu dau moi chuoi
		void viethoacd(char s[]);
		//	6 - dem so luong cac ki tu la nguyen am
		void demna(char s[]);
		//	7 - dem so nguyen am phan biet
		void demnapb(char s[]);
		//	8 - tinh tong cac ki tu so
		void sumso(char s[]);
		//	9 - tinh tong cac so nguyen duong
		void sumpositive(char s[]);
		//	10 - dem so luong tu bat dau bang 1 nguyen am
		void sum1na(char s[]);
		//	11 - kiem tra chuoi co chua toan chu so khong
		void ktchuso(char s[]);
		//	12 - dem so luong tu chua it nhat 2 nguyen am
		void tu2nguyenam(char s[]);
		//	13 - tim ki tu xuat hien nhieu lan nhat
		void ktappearmax(char s[]);
		//	14 - tim tu dai nhat
		void tumax(char s[]);
		//	15 - dao nguoc thu tu cac tu trong chuoi
		void daothutu(char s[]);
		cout << " nhan ESC de thoat chuong trinh " << endl;	
	} while (_getch() != 27);
	return 0;
}
//  1 - kiem tra chuoi chuan
void cchuan(char s[])
{
	int chuan = 1;
	if (s[0] == 32)chuan = 0;
	else
	{
		int len = strlen(s);
		if (s[len - 1] == 32)chuan = 0;
		else
		{
			for (int i = 0; i < len; i++)
			{
				if (s[i] == 32 && s[i + 1] == 32)
				{
					chuan = 0;
					break;
				}
			}
		}
	}
	if (chuan)cout << " day la mang chuan " << endl;
	else cout << " day la mang khong chuan " << endl;
}
//	2 - dem tu trong chuoi chuan
void cchuoichuan(char s[] )
{
	int dem = 0;
	if (s[0] != NULL)
		dem++;
	int len = strlen(s);
	for (int i = 0; i < len; i++)
	{
		if (s[i] == 32)
		{
			dem++;
		}
	}
	cout << " so tu trong chuoi chuan = " << dem << endl;
}
//	3 - dem tu trong chuoi bat ki
void demtucbatki(char s[])
{
	int len = strlen(s);
	int dem = 0;
	if (s[0] != NULL && s[0] != 32)
		dem++;
	for (int i = 1; i < len; i++)
	{
		if (s[i] != 32 && s[i - 1] == 32)
			dem++;
	}
	cout << " so tu trong chuoi " << dem << endl;
}
//	4 - chuan hoa chuoi
void chuanhoachuoi(char s[])
{
	// b1 : cắt các khoảng trắng ở đầu chuỗi 
	while (s[0] == 32)
		memmove(s, s + 1, strlen(s)); // dồn vị trí 1 lên vi trí 0 
	// b2 : cắt các khoảng trắng ở cuối chuỗi
	while (s[strlen(s) - 1] == 32) // kiểm tra cuối chuỗi là khoảng trắng 
		s[strlen(s) - 1] = 0;
	// b3 : cắt các khoảng trắg thừa ở giữa 
	for (int i = 0; i < strlen(s); i++)
	{
		if (s[i] == 32 && s[i + 1] == 32)
		{
			for (int j = i + 1; j <= strlen(s); j++)
			{
				s[j - 1] = s[j];
			}
		}
	}
	cout << " mang sau khi xoa cac khoang trang : ";
	cout << "*" << s << "*" << endl;
}
//	5 - viet hoa ki tu dau moi chuoi
void viethoacd(char s[])
{
	int len = strlen(s);
	if (s[0] != NULL && s[0] != 32)
		s[0] = toupper(s[0]);
	for (int i = 1; i < len; i++)
	{
		if (s[i] != 32 && s[i - 1] == 32)
			s[i] = toupper(s[i]);
	}
	for (int i = 0; i < len; i++)
		cout << s[i] << "";
	cout << endl;
}
//	6 - dem so luong cac ki tu la nguyen am
void demna(char s[])
{
	char na[] = "ueoaiyUEOAIY";
	int sona = 0;
	int len = strlen(s);
	for (int i = 0; i < len; i++)
	{
		if (strchr(na, s[i]) != NULL) // nếu s[i] thuộc na[] thì sona ++ 
			sona++;
	}
	cout << " so luong cac ki tu nguyen am = " << sona << endl;
}
//	7 - dem so nguyen am phan biet
void demnapb(char s[])
{
	int dem = 0;
	int b[100];
	int nb = 0;
	int len = strlen(s);
	for (int i = 0; i < len; i++)
	{
		int t = s[i];
		if (t == 'a' || t == 'o' || t == 'u' || t == 'e' || t == 'i')
		{
			dem++;
			b[nb++] = t;
		}
	}
	for (int i = 0; i < nb - 1; i++)
	{
		for (int j = i + 1; j < nb; j++)
		{
			if (b[i] == b[j])
			{
				for (int t = j + 1; j < nb; j++)
				{
					b[j - 1] = b[j];
				}
				nb--;
			}
		}
	}
	cout << " so nguyen am phan biet trong mang = " << nb << endl;
}
//	8 - tinh tong cac ki tu so
void sumso(char s[])
{
	int tong = 0;
	int len = strlen(s);
	for (int i = 0; i < len; i++)
	{
		if (isdigit(s[i]))  //  // s[i] là kí tự số 
			tong += s[i] - 48;
	}
	cout << " tong cac ki tu so " << tong << endl;
}
//	9 - tinh tong cac so nguyen duong
void sumpositive(char s[]);
//	10 - dem so luong tu bat dau bang 1 nguyen am
void sum1na(char s[])
{
	int dem = 0;
	if (s[0] != NULL && s[0] != 32)
	{
		int t = toupper(s[0]);
		if (t == 'A' || t == 'O' || t == 'U' || t == 'E' || t == 'I' || t == 'Y')
			dem = dem + 1;
	}
	for (int i = 1; i < strlen(s); i++)
	{
		if (s[i - 1] == 32 && s[i] != 32)
		{
			int t = toupper(s[i]);
			if (t == 'A' || t == 'O' || t == 'U' || t == 'E' || t == 'I' || t == 'Y')
				dem++;
		}
	}
	cout << " so tu bat dau bang 1 nguyen am = " << dem << endl;
}
//	11 - kiem tra chuoi co chua toan chu so khong
void ktchuso(char s[])
{
	int kt = 1;
	for (int i = 0; i < strlen(s); i++)
	{
		if (!isdigit(s[i]))
		{
			kt = 0;
			break;
		}
	}
	if (kt)cout << " chuoi chua toan chu so " << endl;
	else cout << " chuoi khong chua toan chu so " << endl;
}
//	12 - dem so luong tu chua it nhat 2 nguyen am
void tu2nguyenam(char s[])
{
	int len = strlen(s);
	char na[] = "ueoaiyUEOAIY";
	char b[20];
	int nb = 0;
	int tong = 0;
	for (int i = 0; i <= len; i++)
	{
		int dem = 0;
		if (s[i] != 32 && s[i] != NULL)
		{
			b[nb++] = s[i];
		}
		else
		{
			b[nb] = NULL;
			for (int i = 0; i < nb; i++)
			{
				int t = toupper(b[i]);
				if (t == 'A' || t == 'O' || t == 'U' || t == 'E' || t == 'I' || t == 'Y')
					dem++;
			}
			nb = 0;
		}
		if (dem>1)tong++;
	}
	cout << " so tu co it nhat 2 nguyen am la : " << tong << endl;
}
//	13 - tim ki tu xuat hien nhieu lan nhat
void ktappearmax(char s[])
{
	int len = strlen(s);
	int c[100];
	int nc = 0;
	char b[20];
	int nb = 0;
	for (int i = 0; i < len; i++) // xuat ra cac chu so 
	{
		if (s[i] != 32 && s[i] != NULL)
		{
			b[nb++] = s[i];
		}
	}
	for (int i = 0; i < nb; i++)
	{
		int dem = 0;
		for (int j = 0; j < nb; j++)
		{
			if (b[i] == b[j])
				dem++;
		}
		c[nc++] = dem;
	}
	int max = c[0];
	int ktmax = b[0];
	for (int i = 0; i < nc; i++)
	{
		if (max < c[i])
		{
			max = c[i];
			ktmax = b[i];
		}
	}
	/*int l = ktmax;
	char u[20];
	_itoa_s(l, u, 10);
	cout << u;*/

	cout << " ki tu xuat hien nhieu nhat la : " << ktmax << endl;
}
//	14 - tim tu dai nhat
void tumax(char s[])
{
	int len = strlen(s);
	char a[20];
	char b[20];
	int nb = 0;
	int max = 0;
	for (int i = 0; i <= len; i++)
	{
		if (s[i] != 32 && s[i] != NULL)
		{
			b[nb++] = s[i];
		}
		else
		{
			b[nb] = NULL;
			if (strlen(b)>max)
			{
				max = strlen(b);
				strcpy_s(a, b);
			}
			nb = 0;
		}
	}
	cout << "tu dai nhat la : " << a << endl;
}
//	15 - dao nguoc thu tu cac tu trong chuoi
void daothutu(char s[])
{
	int len = strlen(s);
	int dem = 0;
	int b[100];
	int nb = 0;
	for (int i = len - 1; i >= 0; i--)
	{
		if (s[i] == 32)
		{
			dem++;
			b[nb++] = i;
		}
	}
	if (dem == 0)
	{
		cout << " chuoi dao tu : ";
		for (int i = 0; i < len; i++)
			cout << s[i];
	}
	else
	{
		if (s[0] != 32 && s[0] != NULL)
			b[nb++] = 0;
		for (int i = 0; i < nb; i++)
		{
			if (i == 0)
			{
				for (int j = b[0] + 1; j < len; j++)
					cout << s[j];
				cout << " ";
			}
			if (i>0 && i < nb - 1)
			{
				for (int j = b[i] + 1; j <= b[i - 1]; j++)
					cout << s[j];
			}
			if (i == nb - 1)
			{
				for (int j = 0; j < b[i - 1]; j++)
					cout << s[j];
			}
		}
	}
	cout << endl;
}

mình copy riêng phần chuỗi ra thì nhập chuỗi vào được nhưng còn mấy bài tập mình làm thì không chạy được

Interns viết 21:02 ngày 30/09/2018

Bạn nghi lỗi chỗ nào thì đưa phần code đó lên, bạn đưa nguyên bài thế thì thua. Và cũng nên suy nghĩ để đặt câu hỏi thông minh tí, làm sao để người khác đọc vô là hiểu liền!

Nhóc Lãng Tử viết 20:58 ngày 30/09/2018

mình mới học hàm 1 bữa nên cũng chưa hiểu lắm , cho nên không biết sai chỗ nào

Bài liên quan
0