0% found this document useful (0 votes)
29 views28 pages

C Programming Array and String Operations

Uploaded by

hathanhvu16
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
29 views28 pages

C Programming Array and String Operations

Uploaded by

hathanhvu16
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd

#include<stdio.

h>

#include<stdlib.h>

int main(){

int n = 6;

float a[10] = {-1.02, 0, 1.24, 1.32, -2.12, 3.23, 1};

int m = 1;

float value = a[0]; // Luu gia tri dau

float min_distance = abs(m - a[0]); // Luu khoang cach cua mang dau tien

int index = 0; // Luu chi so phan tu

for (int i = 1; i < n; i++){

if (abs(m - a[i]) < min_distance){

min_distance = abs(m - a[i]);

index = i;

value = a[i];

}
}

printf("%.2f at index %d nearest to %d", value, index, m);

return 0;

#include <stdio.h>

#include <string.h>

#define MAX 100

int findLetter(char s[], char kitu){

int index = -1;

strlwr(s);

if (kitu >= 'A' && kitu <= 'Z') // Chuyen ki tu sang in thuong

kitu = kitu - 'A' + 'a';

for (int i = 0; i < strlen(s); i++){

if (s[i] == kitu){

index = i;
break;

return index;

int main(){

char s[MAX];

char kitu;

gets(s);

scanf("%c", &kitu);

int index = findLetter(s, kitu);

if (index == -1){

printf("Not found!");

else{

printf("Found %c at %d", kitu, index);

return 0;

}
#include <stdio.h>

#include <string.h>

#define MAX 100

int findWords(char a[][100], int n, char s[]){

for (int i = 0; i < 4; i++){


if (strcmp(a[i], s) == 0){ // So sanh a[i] va s co giong nhau khong

return i;

return -1;

int main(){

int n, k;

scanf("%d%d", &n, &k);

char serialKey[MAX][MAX];

char s[MAX];

getchar();

for (int i = 0; i < n; i++){

gets(serialKey[i]);

scanf("%s", s);

int index = findWords(serialKey, n, s);

if (index == -1){

printf("Not found!");

else{

printf("Found %s at %d", s, index);

return 0;

}
#include<stdio.h>

#include<string.h>

#define MAX 100

void insert(char s[], char c, int idx){

if (idx < 0 || idx >= strlen(s)){

printf("Index is out of ranges\n");

return;

for (int i = strlen(s); i > idx; i--){

s[i] = s[i - 1];

s[idx] = c;

int main(){
char s[MAX];

char c;

int index;

gets(s);

scanf("%c %d", &c, &index);

insert(s, c, index);

printf("%s", s);

return 0;

}
#include <stdio.h>

#include <string.h>

#define MAX 100

void insert(char s[MAX][MAX], int *n, int idx, char s1[]){

if (idx < 0 || idx > *n){

printf("Index is out of range\n");

return;

for (int i = *n; i > idx; i--){

strcpy(s[i], s[i - 1]);

strcpy(s[idx], s1);

(*n) += 1;

}
void output(char s[MAX][MAX], int n){

for (int i = 0; i < n; i++){

printf("%s\n", s[i]);

int main(){

int n, m;

char s[100][100];

scanf("%d%d", &n, &m);

getchar();

for (int i = 0; i < n; i++){

gets(s[i]);

int idx; // Chi so

scanf("%d", &idx);

getchar();

char s1[MAX];

gets(s1); // Chuoi can chen

insert(s, &n, idx, s1);

output(s, n);

return 0;

}
#include <stdio.h>

#include <string.h>

#define MAX 100


void insert(float a[], int *n, int m, float x[], int y[]){

for (int j = 0; j < m; j++){

if (y[j] < 0 || y[j] > *n){

continue;

y[j] += j;

for (int i = *n; i > y[j]; i--){

a[i] = a[i - 1];

a[y[j]] = x[j];

(*n)++;

void output(float a[], int n){

for (int i = 0; i < n; i++){

printf("%.2f ", a[i]);

int main(){

int n;

scanf("%d", &n);

float a[MAX];

for (int i = 0; i < n; i++){ // Nhap vao cac phan tu cua mang

scanf("%f", &a[i]);

}
int m;

scanf("%d", &m); // Nhap so nguyen m

float x[MAX];

int y[MAX];

for (int i = 0; i < m; i++){

scanf("%f%d", &x[i], &y[i]); // Nhap so thuc can chen va chi so

insert(a, &n, m, x, y);

output(a, n);

return 0;

}
#include <stdio.h>

#include <string.h>

#define MAX 100

int convert(char s[]){ // Lay ra 2 chu so dau cua chuoi

return (s[0] - '0') * 10 + (s[1] - '0');

void insert(char s[MAX][MAX], int *n, int m, char s1[]){

int idx = convert(s1);

// Tim vi tri chen

for (int i = 0; i < *n; i++){

if (convert(s[i]) > idx){

idx = i;

break;

}
}

// Chen

printf("idx = %d\n", idx);

for (int i = *n; i > idx; i--){

strcpy(s[i], s[i - 1]);

strcpy(s[idx], s1);

(*n) += 1;

void output(char s[MAX][MAX], int n){

for (int i = 0; i < n; i++){

printf("%s\n", s[i]);

int main(){

// Nhap chuoi ban dau

int n;

char s[MAX][MAX];

scanf("%d", &n);

getchar();

for (int i = 0; i < n; i++){

gets(s[i]);

// Nhap mang chuoi can chen

int m;
scanf("%d", &m);

getchar();

char s1[MAX][MAX];

for (int i = 0; i < m; i++){

gets(s1[i]);

insert(s, &n, m, s1[i]);

output(s, n);

return 0;

#include <stdio.h>

#include <string.h>
#define MAX 100

void delete(char s[MAX], int index){

if (index < 0 || index >= strlen(s)){

printf("Index is out of range!\n");

return;

for (int i = index; i < strlen(s) - 1; i++){

s[i] = s[i + 1];

s[strlen(s) - 1] = '\0'; // Gan ki tu ket thuc chuoi

int main(){

char s[MAX];

int index;

// Nhap chuoi va chi so can xoa

gets(s);

scanf("%d", &index);

delete(s, index);

printf("%s", s);

return 0;

}
#include <stdio.h>

#include <string.h>

#define MAX 100


typedef struct array{

float x, y;

}arr;

// Tim chi so xoa

void findIndex(arr a[], int n, float x, float y, int idx[], int *j){

for (int i = 0; i < n; i++){

if (a[i].x == x && a[i].y == y){

idx[*j] = i;

(*j)++;

void output(arr a[], int n){

for (int i = 0; i < n; i++){

printf("%.2f %.2f\n", a[i].x, a[i].y);

void delete(arr a[], int *n, int index){

if (index < 0 || index >= *n){

return;

for (int i = index; i < *n - 1; i++){

a[i].x = a[i + 1].x;

a[i].y = a[i + 1].y;

}
(*n)--;

void deleteArray(arr a[], int n, float x, float y, int index[], int j){

if (j == 0){

printf("Can not delete %.2f %.2f from the array", x, y);

else{

for (int i = 0; i < j; i++){

delete(a, &n, index[i] - i);

output(a, n);

printf("Delete %.2f %.2f at ", x, y);

for (int i = 0; i < j; i++){

if (i != j - 1){

printf("%d, ", index[i]);

else{

printf("%d", index[i]);

int main(){

int n;

scanf("%d", &n);
arr a[MAX];

for (int i = 0; i < n; i++){

scanf("%f%f", &a[i].x, &a[i].y);

float x, y;

scanf("%f%f", &x, &y);

// Tim chi so phan tu can xoa

int idx[MAX], j = 0;

findIndex(a, n, x, y, idx, &j);

deleteArray(a, n, x, y, idx, j);

return 0;

}
#include <stdio.h>

#include <string.h>

#define MAX 1000

int index[MAX], n = -1; // Bien luu chi so va so luong chi so

void find(char s[], char s1[]){

for (int i = 0; i < strlen(s); i++){

// Kiem tra vi tri dau tien cua chuoi

if (s[i] == s1[0]){

int flag = 0;

// Kiem tra xem s1 ton tai trong s khong

for (int j = 1; j < strlen(s1); j++){

if (s[i + j] != s1[j]){

flag = 1;

}
// Neu s1 ton tai thi luu chi so vao mang index

if (flag == 0){

n++;

index[n] = i;

i += strlen(s1);

printf("%d %s ", n + 1, s1);

if (n >= 0){

for (int i = 0; i <= n; i++){

printf("%d", index[i]);

if (i != n){

printf(", ");

else{

printf("\n");

n = -1; // Gan n = 0 lai

int main(){

char s[MAX], s1[MAX][MAX];

int k;

gets(s);
scanf("%d", &k);

getchar();

for (int i = 0; i < k; i++){

gets(s1[i]);

for (int i = 0; i < k; i++){

find(s, s1[i]);

return 0;

}
#include <stdio.h>

#include <string.h>

#define MAX 100

int index[MAX], n = -1; // Bien luu chi so va so luong chi so

void delete(char s[], int index, int n){ // Xoa ma doc tai index co n ki tu

for (int i = index; i < strlen(s) - n; i++){

s[i] = s[i + n];

s[strlen(s) - n] = '\0';

void find(char s[], char s1[]){

for (int i = 0; i < strlen(s); i++){

// Kiem tra vi tri dau tien cua chuoi


if (s[i] == s1[0]){

int flag = 0;

// Kiem tra xem s1 ton tai trong s khong

for (int j = 1; j < strlen(s1); j++){

if (s[i + j] != s1[j]){

flag = 1;

if (flag == 0){ // Neu ton tai thi luu chi so vao mang index

n++;

index[n] = i;

i += strlen(s1);

//xoa cac ma doc

for (int i = 0; i <= n; i++){

delete(s, index[i], strlen(s1));

index[i + 1] -= n; // doi index sang trai n don vi

n = -1; // Gan n = 0 lai

int main(){

char s[MAX], s1[MAX][MAX];

int k;

gets(s);
scanf("%d", &k);

getchar();

for (int i = 0; i < k; i++){

gets(s1[i]);

find(s, s1[i]);

printf("%s", s);

return 0;

#include <stdio.h>

#include <string.h>

#define MAX 1000


int index[MAX], n = -1; // Bien luu chi so va so luong chi so

void insert(char s[], int index, char c) { // Chen phan tu vao sau index

for (int i = strlen(s); i > index + 1; i--) {

s[i] = s[i - 1];

s[index + 1] = c;

s[strlen(s) + 1] = '\0';

void find(char s[], char s1[]) {

for (int i = 0; i < strlen(s); i++) {

// Kiem tra vi tri dau tien cua chuoi

if (s[i] == s1[0]) {

int flag = 0;

// Kiem tra xem s1 ton tai trong s khong

for (int j = 1; j < strlen(s1); j++) {

if (s[i + j] != s1[j]) {

flag = 1;

if (flag == 0) {

n++;

index[n] = i;

i += strlen(s1);

}
for (int i = 0; i <= n; i++) {

for (int j = i; j < i + strlen(s1); j++) {

insert(s, index[i], s[index[i]] + 1);

index[i] += 2;

index[i + 1] += strlen(s1);

n = -1; // Gan n = 0 lai

int main() {

char s[MAX], s1[MAX][MAX];

int k;

gets(s);

scanf("%d", &k);

getchar();

for (int i = 0; i < k; i++) {

gets(s1[i]);

for (int i = 0; i < k; i++) {

find(s, s1[i]);

printf("%s", s);

return 0;

You might also like