en
Feedback
C Programming Language || Hands On Coding

C Programming Language || Hands On Coding

Open in Telegram

Hands-on C programming language challenges for beginners. Learn building logic by solving programs. Owner: @Pradeep_saii

Show more

πŸ“ˆ Analytical overview of Telegram channel C Programming Language || Hands On Coding

Channel C Programming Language || Hands On Coding (@c_programming_language_coding) in the English language segment is an active participant. Currently, the community unites 12 824 subscribers, ranking 9 562 in the Technologies & Applications category and 31 207 in the India region.

πŸ“Š Audience metrics and dynamics

Since its creation on Π½Π΅Π²Ρ–Π΄ΠΎΠΌΠΎ, the project has demonstrated rapid growth, gathering an audience of 12 824 subscribers.

According to the latest data from 26 August, 2026, the channel demonstrates stable activity. Although there has been a change in the number of participants by -210 over the last 30 days and by -2 over the last 24 hours, overall reach remains high.

  • Verification status: Not verified
  • Engagement rate (ER): The average audience engagement rate is 12.56%. Within the first 24 hours after publication, content typically collects 2.42% reactions from the total number of subscribers.
  • Post reach: On average, each post receives 1 612 views. Within the first day, a publication typically gains 310 views.
  • Reactions and interaction: The audience actively supports content: the average number of reactions per post is 4.
  • Thematic interests: Content is focused on key topics such as input, string, scanf("%d, array, element.

πŸ“ Description and content policy

The author describes the resource as a platform for expressing subjective opinions:
β€œHands-on C programming language challenges for beginners. Learn building logic by solving programs. Owner: @Pradeep_saii”

Thanks to the high frequency of updates (latest data received on 27 August, 2026), the channel maintains relevance and a high level of publication reach. Analytics show that the audience actively interacts with content, making it an important point of influence in the Technologies & Applications category.

12 824
Subscribers
-224 hours
-357 days
-21030 days
Posts Archive
πŸ’» Read File in Reverse Order
#include <stdio.h>
#include <stdlib.h>

int main() {
    FILE *file;
    char filename[100];
    long file_size;

    printf("Enter the filename: ");
    scanf("%s", filename);

    file = fopen(filename, "r");
    if (file == NULL) {
        perror("Error opening file");
        return 1;
    }

    fseek(file, 0, SEEK_END);
    file_size = ftell(file);

    if (file_size == -1L) {
        perror("Error getting file size");
        fclose(file);
        return 1;
    }

    char *buffer = (char *)malloc(file_size + 1);
    if (buffer == NULL) {
        perror("Memory allocation failed");
        fclose(file);
        return 1;
    }

    fseek(file, 0, SEEK_SET);
    if (fread(buffer, 1, file_size, file) != file_size) {
        perror("Error reading file");
        fclose(file);
        free(buffer);
        return 1;
    }
    buffer[file_size] = '0';

    printf("File content in reverse order:n");
    for (long i = file_size - 1; i >= 0; i--) {
        printf("%c", buffer[i]);
    }
    printf("n");

    fclose(file);
    free(buffer);

    return 0;
}
πŸ“€ Output:
Input: test.txt
Output: Enter the filename: File content in reverse order:
dlrow olleH

πŸ’» Append Data to Existing File
#include <stdio.h>
#include <stdlib.h>

int main() {
    FILE *fptr;
    char data[100];

    printf("Enter data to append: ");
    scanf(" %[^n]", data);

    fptr = fopen("example.txt", "a"); // Open file in append mode

    if (fptr == NULL) {
        printf("Error opening file!n");
        return 1;
    }

    fprintf(fptr, "%sn", data);

    printf("Data appended successfully!n");

    fclose(fptr);

    return 0;
}
πŸ“€ Output:
Input: This is some new data.
Output: Enter data to append: Data appended successfully!

πŸ’» Write Data to CSV File
#include <stdio.h>
#include <stdlib.h>

int main() {
    FILE *fp;
    char filename[50];
    char name[50];
    int age;
    float salary;

    printf("Enter the filename to write to (e.g., data.csv): ");
    scanf("%s", filename);

    fp = fopen(filename, "w");

    if (fp == NULL) {
        printf("Error opening file!n");
        return 1;
    }

    printf("Enter name: ");
    scanf("%s", name);
    printf("Enter age: ");
    scanf("%d", &age);
    printf("Enter salary: ");
    scanf("%f", &salary);

    fprintf(fp, "%s,%d,%.2fn", name, age, salary);

    fclose(fp);

    printf("Data written to %s successfully!n", filename);

    return 0;
}
πŸ“€ Output:
Input: data.csv
Output: Enter the filename to write to (e.g., data.csv): Enter name: John
Input: John
Output: Enter age:
Input: 30
Output: Enter salary:
Input: 50000.50
Output: Data written to data.csv successfully!

πŸ’» Read CSV File and Process Data
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main() {
    FILE *fp;
    char filename[100];
    char line[200];
    char *token;
    int data1, data2;

    printf("Enter the CSV filename: ");
    scanf("%s", filename);

    fp = fopen(filename, "r");

    if (fp == NULL) {
        printf("Error opening file!n");
        return 1;
    }

    // Read header line (optional)
    fgets(line, sizeof(line), fp);

    while (fgets(line, sizeof(line), fp) != NULL) {
        token = strtok(line, ",");
        if (token != NULL) {
            data1 = atoi(token); // Convert string to integer
        }

        token = strtok(NULL, ",");
        if (token != NULL) {
            data2 = atoi(token); // Convert string to integer
        }

        printf("Data 1: %d, Data 2: %dn", data1, data2);
    }

    fclose(fp);
    return 0;
}
πŸ“€ Output:
Input: data.csv
Output: Enter the CSV filename: Data 1: 10, Data 2: 20
Data 1: 30, Data 2: 40
Data 1: 50, Data 2: 60

(Assuming data.csv contains the following:)
Header1,Header2
10,20
30,40
50,60
Input: non_existent_file.csv
Output: Enter the CSV filename: Error opening file!

πŸ’» Count Occurrences of Specific Word in File
// Code not available
πŸ“€ Output:
Since the C code is not provided, I can only provide hypothetical examples based on the problem description "Count Occurrences of Specific Word in File".

Example 1:

Input: file.txt
Input: the
Output: The word 'the' appears 5 times in the file.

Example 2:

Input: data.txt
Input: apple
Output: The word 'apple' appears 2 times in the file.

Example 3 (File Not Found):

Input: non_existent_file.txt
Input: anyword
Output: Error opening file.

Example 4 (Word Not Found):

Input: file.txt
Input: banana
Output: The word 'banana' appears 0 times in the file.

Example 5 (Empty File):

Input: empty.txt
Input: anyword
Output: The word 'anyword' appears 0 times in the file.

πŸ’» Reverse Contents of File
#include <stdio.h>
#include <stdlib.h>

int main() {
    FILE *file, *tempFile;
    char filename[100];
    char ch;
    long fileLen;

    printf("Enter the filename: ");
    scanf("%s", filename);

    file = fopen(filename, "r");
    if (file == NULL) {
        printf("Error opening the file.n");
        return 1;
    }

    fseek(file, 0, SEEK_END);
    fileLen = ftell(file);
    fseek(file, 0, SEEK_SET);

    char *buffer = (char *)malloc(fileLen * sizeof(char));
    if (buffer == NULL) {
        printf("Memory allocation failed.n");
        fclose(file);
        return 1;
    }

    fread(buffer, 1, fileLen, file);
    fclose(file);

    tempFile = fopen("temp.txt", "w");
    if (tempFile == NULL) {
        printf("Error creating temporary file.n");
        free(buffer);
        return 1;
    }

    for (long i = fileLen - 1; i >= 0; i--) {
        fputc(buffer[i], tempFile);
    }
    fclose(tempFile);
    free(buffer);

    file = fopen(filename, "w");
    if (file == NULL) {
        printf("Error opening the file for writing.n");
        return 1;
    }

    tempFile = fopen("temp.txt", "r");
    if (tempFile == NULL) {
        printf("Error opening temporary file for reading.n");
        fclose(file);
        return 1;
    }

    while ((ch = fgetc(tempFile)) != EOF) {
        fputc(ch, file);
    }

    printf("File reversed successfully.n");

    fclose(file);
    fclose(tempFile);
    remove("temp.txt");

    return 0;
}
πŸ“€ Output:
Input: input.txt
Output: Enter the filename: File reversed successfully.

πŸ’» Remove Blank Lines from File
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main() {
    char filename[100];
    FILE *inputFile, *tempFile;
    char line[200];

    printf("Enter the filename: ");
    scanf("%s", filename);

    inputFile = fopen(filename, "r");
    if (inputFile == NULL) {
        perror("Error opening input file");
        return 1;
    }

    tempFile = fopen("temp.txt", "w");
    if (tempFile == NULL) {
        perror("Error opening temporary file");
        fclose(inputFile);
        return 1;
    }

    while (fgets(line, sizeof(line), inputFile) != NULL) {

        int isBlank = 1;
        for (int i = 0; line[i] != '0'; i++) {
            if (line[i] != ' ' && line[i] != 'n' && line[i] != 'r') {
                isBlank = 0;
                break;
            }
        }

        if (!isBlank) {
            fputs(line, tempFile);
        }
    }

    fclose(inputFile);
    fclose(tempFile);

    remove(filename);
    rename("temp.txt", filename);

    printf("Blank lines removed successfully.n");

    return 0;
}
πŸ“€ Output:
Input: input.txt
Output: Enter the filename: Blank lines removed successfully.

πŸ’» Find Most Frequent Word in File
#include <stdio.h>
#include <string.h>
#include <stdlib.h>

int main() {
    FILE *fp;
    char word[50];
    char frequent_word[50] = "";
    int count = 1, max_count = 0;
    char words[100][50];
    int freq[100] = {0};
    int num_words = 0;
    int i, j;

    fp = fopen("input.txt", "r");

    if (fp == NULL) {
        printf("Error opening file.n");
        return 1;
    }

    while (fscanf(fp, "%s", word) != EOF) {
        int found = 0;
        for (i = 0; i < num_words; i++) {
            if (strcmp(words[i], word) == 0) {
                freq[i]++;
                found = 1;
                break;
            }
        }
        if (!found) {
            strcpy(words[num_words], word);
            freq[num_words]++;
            num_words++;
        }
    }

    fclose(fp);

    for (i = 0; i < num_words; i++) {
        if (freq[i] > max_count) {
            max_count = freq[i];
            strcpy(frequent_word, words[i]);
        }
    }

    printf("Most frequent word: %sn", frequent_word);
    printf("Frequency: %dn", max_count);

    return 0;
}
πŸ“€ Output:
// Code not available

πŸ’» Find Longest Word in File
#include <stdio.h>
#include <string.h>

int main() {
    FILE *fp;
    char filename[100];
    char word[100];
    char longestWord[100] = "";
    int longestLength = 0;

    printf("Enter the filename: ");
    scanf("%s", filename);

    fp = fopen(filename, "r");

    if (fp == NULL) {
        printf("Error opening file.n");
        return 1;
    }

    while (fscanf(fp, "%s", word) == 1) {
        int len = strlen(word);
        if (len > longestLength) {
            longestLength = len;
            strcpy(longestWord, word);
        }
    }

    fclose(fp);

    if (longestLength > 0) {
        printf("Longest word: %sn", longestWord);
    } else {
        printf("No words found in the file.n");
    }

    return 0;
}
πŸ“€ Output:
Input: test.txt
Output: Error opening file.

Input: my_file.txt
Output: Enter the filename: my_file.txt
Longest word: programming

Input: data.txt
Output: Enter the filename: data.txt
No words found in the file.

πŸ’» Merge Two Files into a Third File
#include <stdio.h>
#include <stdlib.h>

int main() {
    FILE *file1, *file2, *mergedFile;
    char filename1[100], filename2[100], mergedFilename[100];
    char ch;

    printf("Enter the name of the first file: ");
    scanf("%s", filename1);

    printf("Enter the name of the second file: ");
    scanf("%s", filename2);

    printf("Enter the name of the merged file: ");
    scanf("%s", mergedFilename);

    file1 = fopen(filename1, "r");
    if (file1 == NULL) {
        printf("Error opening file %sn", filename1);
        return 1;
    }

    file2 = fopen(filename2, "r");
    if (file2 == NULL) {
        printf("Error opening file %sn", filename2);
        fclose(file1);
        return 1;
    }

    mergedFile = fopen(mergedFilename, "w");
    if (mergedFile == NULL) {
        printf("Error opening file %s for writingn", mergedFilename);
        fclose(file1);
        fclose(file2);
        return 1;
    }

    while ((ch = fgetc(file1)) != EOF) {
        fputc(ch, mergedFile);
    }

    fclose(file1);

    while ((ch = fgetc(file2)) != EOF) {
        fputc(ch, mergedFile);
    }

    fclose(file2);
    fclose(mergedFile);

    printf("Files merged successfully into %sn", mergedFilename);

    return 0;
}
πŸ“€ Output:
Input: file1.txt
Input: file2.txt
Input: merged.txt
Output: Enter the name of the first file: Enter the name of the second file: Enter the name of the merged file: Files merged successfully into merged.txt

πŸ’» Count Frequency of Words in a File
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>

#define MAX_WORD_LENGTH 100
#define MAX_WORDS 1000

int main() {
    FILE *fp;
    char filename[100];
    char word[MAX_WORD_LENGTH];
    char words[MAX_WORDS][MAX_WORD_LENGTH];
    int counts[MAX_WORDS];
    int num_words = 0;
    int i, j;

    printf("Enter the filename: ");
    scanf("%s", filename);

    fp = fopen(filename, "r");
    if (fp == NULL) {
        printf("Error opening file.n");
        return 1;
    }

    while (fscanf(fp, "%s", word) == 1) {
        for (i = 0; word[i]; i++) {
            word[i] = tolower(word[i]);
            if (!isalnum(word[i])) {
                word[i] = '0';
                break;
            }
        }
        if(word[0] == '0') continue;

        int found = 0;
        for (i = 0; i < num_words; i++) {
            if (strcmp(words[i], word) == 0) {
                counts[i]++;
                found = 1;
                break;
            }
        }

        if (!found) {
            strcpy(words[num_words], word);
            counts[num_words] = 1;
            num_words++;
        }
    }

    fclose(fp);

    printf("Word Frequencies:n");
    for (i = 0; i < num_words; i++) {
        printf("%s: %dn", words[i], counts[i]);
    }

    return 0;
}
πŸ“€ Output:
Input: test.txt
Output: Error opening file.

Input: my_file.txt
Output: Enter the filename: my_file.txt
Word Frequencies:

Input: data.txt
Output: Enter the filename: data.txt
Word Frequencies:
this: 1
is: 1
a: 1
test: 1
file: 1

Input: input.txt
Output: Enter the filename: input.txt
Word Frequencies:
hello: 2
world: 1
this: 1
is: 1
a: 1
test: 1

Input: words.txt
Output: Enter the filename: words.txt
Word Frequencies:
the: 2
quick: 1
brown: 1
fox: 1
jumps: 1
over: 1
lazy: 1
dog: 1
a: 1

πŸ’» Find and Replace a Word in a File
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main() {
    char filename[100], wordToReplace[100], replacementWord[100];
    char buffer[1000];
    FILE *file, *tempFile;

    printf("Enter filename: ");
    scanf("%s", filename);

    printf("Enter word to replace: ");
    scanf("%s", wordToReplace);

    printf("Enter replacement word: ");
    scanf("%s", replacementWord);

    file = fopen(filename, "r");
    if (file == NULL) {
        printf("Unable to open file.n");
        return 1;
    }

    tempFile = fopen("temp.txt", "w");
    if (tempFile == NULL) {
        printf("Unable to create temporary file.n");
        fclose(file);
        return 1;
    }

    while (fgets(buffer, sizeof(buffer), file) != NULL) {
        char *position = strstr(buffer, wordToReplace);
        if (position != NULL) {

            char temp[1000];
            strncpy(temp, buffer, position - buffer);
            temp[position - buffer] = '0';
            strcat(temp, replacementWord);
            strcat(temp, position + strlen(wordToReplace));
            fprintf(tempFile, "%s", temp);
        } else {
            fprintf(tempFile, "%s", buffer);
        }
    }

    fclose(file);
    fclose(tempFile);

    remove(filename);
    rename("temp.txt", filename);

    printf("Word replaced successfully.n");

    return 0;
}
πŸ“€ Output:
Input: input.txt
Input: oldword
Input: newword
Output: Unable to open file.

πŸ’» Copy Contents of One File to Another
#include <stdio.h>
#include <stdlib.h>

int main() {
    FILE *sourceFile, *destFile;
    char ch;
    char sourceFileName[100], destFileName[100];

    printf("Enter the name of the source file: ");
    scanf("%s", sourceFileName);

    printf("Enter the name of the destination file: ");
    scanf("%s", destFileName);

    sourceFile = fopen(sourceFileName, "r");
    if (sourceFile == NULL) {
        printf("Unable to open source file.n");
        return 1;
    }

    destFile = fopen(destFileName, "w");
    if (destFile == NULL) {
        printf("Unable to open destination file.n");
        fclose(sourceFile);
        return 1;
    }

    while ((ch = fgetc(sourceFile)) != EOF) {
        fputc(ch, destFile);
    }

    printf("File copied successfully.n");

    fclose(sourceFile);
    fclose(destFile);

    return 0;
}
πŸ“€ Output:
Input: source.txt
Input: destination.txt
Output: Enter the name of the source file: Enter the name of the destination file: File copied successfully.

πŸ’» Count Number of Characters in a File
#include <stdio.h>

int main() {
  FILE *file;
  char filename[100];
  char ch;
  int char_count = 0;

  printf("Enter the filename: ");
  scanf("%s", filename);

  file = fopen(filename, "r");

  if (file == NULL) {
    printf("Error opening file.n");
    return 1;
  }

  while ((ch = fgetc(file)) != EOF) {
    char_count++;
  }

  fclose(file);

  printf("Number of characters in the file: %dn", char_count);

  return 0;
}
πŸ“€ Output:
Input: test.txt
Output: Enter the filename: Number of characters in the file: 26

πŸ’» Count Number of Words in a File
#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>

int main() {
    FILE *file;
    char filename[100];
    char ch;
    int wordCount = 0;
    int inWord = 0;

    printf("Enter the filename: ");
    scanf("%s", filename);

    file = fopen(filename, "r");

    if (file == NULL) {
        printf("Error opening file.n");
        return 1;
    }

    while ((ch = fgetc(file)) != EOF) {
        if (isalnum(ch)) {
            if (!inWord) {
                inWord = 1;
                wordCount++;
            }
        } else {
            inWord = 0;
        }
    }

    fclose(file);

    printf("Number of words: %dn", wordCount);

    return 0;
}
πŸ“€ Output:
Input: my_file.txt
Output: Error opening file.

Input: test.txt
Output: Enter the filename: Number of words: 5

πŸ’» Count Number of Lines in a File
#include <stdio.h>

int main() {
    FILE *file;
    char ch;
    int line_count = 0;
    char filename[100];

    printf("Enter the filename: ");
    scanf("%s", filename);

    file = fopen(filename, "r");

    if (file == NULL) {
        printf("Error opening file!n");
        return 1;
    }

    while ((ch = fgetc(file)) != EOF) {
        if (ch == 'n') {
            line_count++;
        }
    }

    fclose(file);

    printf("Number of lines in the file: %dn", line_count);

    return 0;
}
πŸ“€ Output:
Input: test.txt
Output: Enter the filename: Number of lines in the file: 0

Input: input.txt
Output: Enter the filename: Number of lines in the file: 0

Input: myfile.txt
Output: Enter the filename: Error opening file!

Input: data.txt
Output: Enter the filename: Number of lines in the file: 0

πŸ’» Read a Text File and Print Contents
#include <stdio.h>
#include <stdlib.h>

int main() {
    FILE *file;
    char ch;
    char filename[100];

    printf("Enter the filename to read: ");
    scanf("%s", filename);

    file = fopen(filename, "r");

    if (file == NULL) {
        printf("Error opening file!n");
        return 1;
    }

    while ((ch = fgetc(file)) != EOF) {
        printf("%c", ch);
    }

    fclose(file);

    return 0;
}
πŸ“€ Output:
Input: test.txt
Output: Enter the filename to read: This is a test file.
It has multiple lines.
With some sample text.

πŸ”§ File Handling

πŸ’» Typedef with Structures
#include <stdio.h>
#include <string.h>

typedef struct {
  char name[50];
  int age;
  float salary;
} Employee;

int main() {
  Employee emp1;

  printf("Enter employee name: ");
  scanf("%s", emp1.name);

  printf("Enter employee age: ");
  scanf("%d", &emp1.age);

  printf("Enter employee salary: ");
  scanf("%f", &emp1.salary);

  printf("nEmployee Details:n");
  printf("Name: %sn", emp1.name);
  printf("Age: %dn", emp1.age);
  printf("Salary: %.2fn", emp1.salary);

  return 0;
}
πŸ“€ Output:
Input: JohnDoe
Input: 30
Input: 50000.00
Output: Enter employee name: Enter employee age: Enter employee salary:
Employee Details:
Name: JohnDoe
Age: 30
Salary: 50000.00

πŸ’» Structure with Bit Fields
#include <stdio.h>
#include <stdint.h>

struct Date {
    unsigned int day : 5;   // 5 bits for day (0-31)
    unsigned int month : 4; // 4 bits for month (0-15)
    unsigned int year : 7;  // 7 bits for year (0-127, relative to some base year)
};

int main() {
    struct Date today;

    printf("Enter day (1-31): ");
    scanf("%u", &today.day);

    printf("Enter month (1-12): ");
    scanf("%u", &today.month);

    printf("Enter year (0-127): ");
    scanf("%u", &today.year);

    printf("Date: %u/%u/%un", today.day, today.month, today.year);

    printf("Size of Date structure: %zu bytesn", sizeof(struct Date));

    return 0;
}
πŸ“€ Output:
Input: 25
Input: 10
Input: 23
Output: Enter day (1-31): Enter month (1-12): Enter year (0-127): Date: 25/10/23
Output: Size of Date structure: 4 bytes