Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 12, средняя оценка - 4.92
ACTAVIA
3 / 3 / 0
Регистрация: 15.03.2009
Сообщений: 57
#1

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

15.03.2009, 02:24. Просмотров 1565. Ответов 6
Метки нет (Все метки)

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

В конец каждой строки текстового файла дописать количество символов этой строки - C++
Помогите, нужно : "В конец каждой строки текстового файла дописать количество символов этой строки". Получается только в начало, не знаю...

как сделать из строки массив из символов этой строки - C++
как? заранее спасибо

Массив: Напечатать номер каждой строки, в которой второй элемент меньше среднего арифметического элементов этой строки, и число таких строк. - C++
Дана матрица А(m,n). Напечатать номер каждой строки, в которой второй элемент меньше среднего арифметического элементов этой строки,...

Прибавить ко всем элементам каждой строки максимальное значение этой строки - C++
добрый вечер! Помогите пожалуйста доработать код! Изменить текущий массив, прибавив ко всем элементам каждой строки максимальное...

Дан двумерный массив. найти количество элементов в каждой строке, меньших диагонального в этой строке - C++
1.Сформировать квадратную матрицу 000001 000020 000300 0n-10000 n00000 2.Дан двумерный массив. найти количество элементов в...

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

6
Gravity
569 / 563 / 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;
}
0
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]);
что-нить в этом роде,ток чтоб это работало)
0
Gravity
569 / 563 / 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.
0
ACTAVIA
3 / 3 / 0
Регистрация: 15.03.2009
Сообщений: 57
15.03.2009, 16:11  [ТС] #5
при компиляции ошибок нет,ток она че-то нифига не выдает(((я вообще с програм на вы(
0
Gravity
569 / 563 / 39
Регистрация: 29.01.2009
Сообщений: 1,274
15.03.2009, 16:26 #6
А что должна выдавать-то? Выкладывайте код программы.
0
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);
};
0
15.03.2009, 16:36
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.03.2009, 16:36
Привет! Вот еще темы с ответами:

Строки. Дан массив символов, в котором встречаются структуры <i> и </i> - C++
Дан массив символов, в котором встречаются структуры &lt;i&gt; и &lt;/i&gt;. Заменить каждое вхождение &lt;i&gt; на &lt;/i&gt;, а каждое вхождение &lt;/i&gt; на &lt;#&gt;....

Найти количество элементов в каждой строке, больших среднего арифметического элементов этой строки. - C++
Напишите пожалуйста программу: Найти количество элементов в каждой строке, больших среднего арифметического элементов этой строки.

8. Найти среднее арифметическое элементов каждой строки матрицы Q(l,m) и вычесть его из элементов этой строки - C++
желательно с коментариями

В текстовый файл вставить пробелы, что бы количество символов равнялось 80, взяв строки из другого файла - C++
Доброго времени суток! Очень нужна помощь в немного странной задаче. В текстовый файл нужно вставить пробелы таким образом, чтобы...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru