// Дана строка. Определить длины всех её строк (???) и сохранить их в одномерном массиве.
#include <stdio.h>
#include <string.h>
#include <stdlib.h> // для system()
// A list of strings, each terminated with NULL.
// The last string is followed by an additional NULL
char multiString[] = "first\0second\0third\0it is the forth\0and the last one\0";
int main( int argc, char* argv[] )
{
int len[10]; // массив длин строк
int i = 0;
char* p = multiString;
while( *p ) {
printf( "%s\n", p ); // отладочный вывод - очередная подстрока
int n = strlen( p ); // длина подстроки
len[i++] = n; // сохраняем в массиве
p += n+1; // переходим к следующей
}
printf( "\nДлины подстрок:\n" );
for( int j = 0; j < i; ++j )
printf( "%d. %d\n", j+1, len[j] );
system( "pause" );
return 0;
}
// Дан текстовый файл. Найти кол-во символов А в нем.
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
// подсчет числа повторений символа ch (кроме '\0') в файле pszFileName
// возвращает кол-во символов или -1 при ошибке открытия файла
long count_char( const char* pszFileName, unsigned char ch )
{
// открываем файл для чтения/записи с разделением доступа по чтению
FILE* f = fopen( pszFileName, "rt" );
if( !f ) return -1;
long count = 0; // кол-во искомых символов
char s[256]; // буфер для строк
while( fgets( s, sizeof s, f )) { // читаем очередную строку
char* p = strchr( s, ch ); // ищем первое вхождение искомого символа
while( p ) { // пока есть такой символ...
++count; // подсчитываем
p = strchr( p+1, ch ); // ищем следующий
}
}
fclose( f );
return count;
}
int main( int argc, char* argv[] )
{
char szInput[_MAX_PATH];
char *pInName;
if( argc >= 2 ) // если в командной строке переданы параметры,
pInName = argv[1]; // то первый из них - имя обрабатываемого файла
else { // иначе - запрашиваем имя файла у пользователя
printf( "Введите имя исходного файла: " );
pInName = gets( szInput );
}
long iResult = count_char( pInName, 'A' );
if( iResult == -1 ) {
printf( "Ошибка при открытии файла "%s"\n", pInName );
return 1;
}
printf( "В файле "%s" найдено %lu символов A.\n", pInName, iResult );
system( "pause" );
return 0;
}
Если Вы уже зарегистрированы на Портале - войдите в систему, если Вы еще не регистрировались - пройдите простую процедуру регистрации.