Форум программистов, компьютерный форум CyberForum.ru

Дан безразмерный массив.Вставить количество символов каждой строки вначало этой же строки. - C++

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 12, средняя оценка - 4.92
ACTAVIA
 Аватар для ACTAVIA
3 / 3 / 0
Регистрация: 15.03.2009
Сообщений: 57
15.03.2009, 02:24     Дан безразмерный массив.Вставить количество символов каждой строки вначало этой же строки. #1
Массив считывается из файла,а в проге указывается как указатель на указатель **.Запуск программы+файла происходит из командной строки.Если кто знает,как определить длину этой строки(она должна быть с пробелами) или правильно оформить функцию strlen.Заранее большое спасибо всем,кто чем-нибудь сможет помочь
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.03.2009, 02:24     Дан безразмерный массив.Вставить количество символов каждой строки вначало этой же строки.
Посмотрите здесь:

От значений элементов каждой строки двумерного массива вычесть значение минимального элемента этой строки C++
C++ как сделать из строки массив из символов этой строки
C++ Замена первых элементов каждой строки квадратной матрицы на сумму элементов этой строки
C++ Массив: Напечатать номер каждой строки, в которой второй элемент меньше среднего арифметического элементов этой строки, и число таких строк.
Добавить в конец каждой строки необходимо количество «*» что бы выровнять текст по правому краю большей строки C++
C++ Сформировать одномерный массив, содержащий количество нулевых элементов каждой строки матрицы
Найти количество элементов в каждой строке, больших среднего арифметического элементов этой строки. C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Gravity
 Аватар для Gravity
556 / 550 / 39
Регистрация: 29.01.2009
Сообщений: 1,274
15.03.2009, 13:18     Дан безразмерный массив.Вставить количество символов каждой строки вначало этой же строки. #2
C
1
2
3
4
5
6
7
int strlen(char *s)
{
    char *p = s;
    while(*p!='\0')
       p++;
    return p - s;
}
Или так (без указателей):
C
1
2
3
4
5
6
7
int strlen(char s[])
{
    int i = 0;
    while(s[i]!='\0')
       i++;
    return i;
}
ACTAVIA
 Аватар для ACTAVIA
3 / 3 / 0
Регистрация: 15.03.2009
Сообщений: 57
15.03.2009, 13:23  [ТС]     Дан безразмерный массив.Вставить количество символов каждой строки вначало этой же строки. #3
мне надо с двойным указателем(

Добавлено через 1 минуту 3 секунды
Код
char **cl::obr(char **mas)
 {
  int i,j;
  z[0]=0;
  for(i=0;i<n;i++)
  for(j=0;j<n;j++)
   z[i]=strlen(char  *mas[i][j]);
что-нить в этом роде,ток чтоб это работало)
Gravity
 Аватар для Gravity
556 / 550 / 39
Регистрация: 29.01.2009
Сообщений: 1,274
15.03.2009, 14:06     Дан безразмерный массив.Вставить количество символов каждой строки вначало этой же строки. #4
Цитата Сообщение от ACTAVIA Посмотреть сообщение
мне надо с двойным указателем(
Вы так strlen'у будете передавать весь двумерный массив, а ему достаточно одной строки. Ничто не мешает в main пройтись циклом по строкам и для каждой отдельно подсчитать ее длину.
C
1
2
for(i=0; i<N; i++)
   z[i] = strlen(mas[i]);
N - число строк в массиве mas.
ACTAVIA
 Аватар для ACTAVIA
3 / 3 / 0
Регистрация: 15.03.2009
Сообщений: 57
15.03.2009, 16:11  [ТС]     Дан безразмерный массив.Вставить количество символов каждой строки вначало этой же строки. #5
при компиляции ошибок нет,ток она че-то нифига не выдает(((я вообще с програм на вы(
Gravity
 Аватар для Gravity
556 / 550 / 39
Регистрация: 29.01.2009
Сообщений: 1,274
15.03.2009, 16:26     Дан безразмерный массив.Вставить количество символов каждой строки вначало этой же строки. #6
А что должна выдавать-то? Выкладывайте код программы.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.03.2009, 16:36     Дан безразмерный массив.Вставить количество символов каждой строки вначало этой же строки.
Еще ссылки по теме:

C++ Дан двумерный массив. найти количество элементов в каждой строке, меньших диагонального в этой строке
C++ В текстовый файл вставить пробелы, что бы количество символов равнялось 80, взяв строки из другого файла
8. Найти среднее арифметическое элементов каждой строки матрицы Q(l,m) и вычесть его из элементов этой строки C++
C++ Дан массив 5х5.Максимальный элемент каждой строки поменять местами с диагональным элементом соответствующих ст
Выполнить циклический сдвиг элементов каждой строки матрицы на количество позиций, равное номеру строки C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
ACTAVIA
 Аватар для ACTAVIA
3 / 3 / 0
Регистрация: 15.03.2009
Сообщений: 57
15.03.2009, 16:36  [ТС]     Дан безразмерный массив.Вставить количество символов каждой строки вначало этой же строки. #7
Главная
#include<fstream.h>
#include<stdlib.h>
#include<string.h>
#include<conio.h>
#include<ctype.h>
#include"G:\newevg\class.cpp"
#define M 300

void cl:roverka(int k)
{ clrscr();
if(k==1)
{cerr<<"Вы не подключили текстовый файл!"<<endl;
exit(1);}
if(k>=3)
{
cerr<<"Можно подключать только 1 текстовый файл!"<<endl;
exit(1);
}
}



char **cl::vvod(char *name)
{
ifstream fin;

char *ch;
int i;

fin.open(name);
if(!fin)
{
cerr<<"Не удалось открыть "<<name<<endl;
fin.clear();
exit(1);
}

cout<<"Текущее содержимое файла "<<name<<":"<<endl;
n=0;
while(fin.getline(ch,M))
{
cout<<ch<<endl;
n++;
}
fin.clear();
fin.close();

cout<<endl<<n<<" строчек в "<<name<<endl;

fin.open(name);
for(i=0;i<n;i++)
fin.getline(mas[i],M);

fin.clear();
fin.close();

return mas;
}



char **cl::obr(char **mas,int *z)
{
int i;
for(i=0;i<n;i++)
{
z[i]=strlen(mas[i]);
cout<<endl<<z[i]<<endl;
}
return mas;
};

void cl::vivod(char **mas,int *z)
{
ifstream fin;
ofstream fout;
int a,i;
char fn[50],c;

cout<<endl<<"Обработанный массив:"<<endl;
for(i=0;i<n;i++)
{ // cout<<mas[i]<<endl;
cout<<endl<<"koli4estvo simvolov v stroke"<<' '<<z[i]<<endl;
}


do
{
cout<<endl<<"Записать массив в файл?(1-да,2-нет)"<<endl;
cin>>a;
}
while((a!=1)&&(a!=2));

if(a==1)
{
do
{
cout<<"Введите имя нового файла:"<<endl;
cin>>fn;
fout.open(fn);
if(!fout)
{
cerr<<"Не удалось открыть "<<fn<<endl;
fout.clear();
}
}
while(!fout);

for(i=0;i<n;i++)
fout<<mas[i]<<endl;
fout.clear();
fout.close();
}
else
exit(1);

fin.open(fn);
cout<<"Содержимое записаннного файла "<<fn<<":"<<endl;
while (fin.get(c))
cout<<c;
fin.clear();
fin.close();
}


int main(int argc,char *argv[])
{
char **mas1;
int *z1;
cl ob;
ob.proverka(argc);
cout<<'10';
mas1=ob.vvod(argv[1]);
cout<<'20';


mas1=ob.obr(mas1,z1);
cout<<'30';
ob.vivod(mas1,z1);

return 0;
}

сразу прошу над кодом не смеяться,,я че уже ток с ним не делала и си я недавно начала))
класс
class cl{
long n;
char **mas;
//int *z;
public:
void proverka(int k);
char **vvod(char *name);
char **obr(char **mas);
void vivod(char **mas);
};
Yandex
Объявления
15.03.2009, 16:36     Дан безразмерный массив.Вставить количество символов каждой строки вначало этой же строки.
Ответ Создать тему
Опции темы

Текущее время: 10:59. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru