ラベル 演習 9 文字列の基本 の投稿を表示しています。 すべての投稿を表示
ラベル 演習 9 文字列の基本 の投稿を表示しています。 すべての投稿を表示

演習 9-12

#include <stdio.h>
#define row 128

void rev_string(char s[][128], int n){


    int i, j, length;
    char tmp[128];

    for(j = 0; j < n; j++){

        length = 0;
        for(i = 0; s[j][i] != '\0'; i++){
            tmp[i] = s[j][i];
            length++;
        }

        for(i = 0; i < length; i++){
            s[j][i] = tmp[length - 1 - i];      
        }

        printf("s[%d] = \"%s\"\n", j, s[j]);
    }
}

int main(){

    int i, j;
    char cs[row][128];

    for(i = 0; i < row; i++){
        printf("文字列を入力してください:");    scanf("%s", cs[i]);

        for(j = 0; cs[i][j] != '\0'; j++){
            if(cs[i][j] != '$') break;
        }
        if(j == 5) break;
    }

    rev_string(cs, i);

    return 0;
}

演習 9-11

#include <stdio.h>

#define row 128

void put_strary(const char s[][128], int n){

    int i;
    for(i = 0; i < n; i++){
        printf("s[%d] = \"%s\"\n", i, s[i]);
    }
}

int main(){

    int i, j;
    char cs[row][128];

    for(i = 0; i < row; i++){
        printf("文字列を入力してください:");    scanf("%s", cs[i]);

        for(j = 0; cs[i][j] != '\0'; j++){
            if(cs[i][j] != '$') break;
        }
        if(j == 5) break;
    }

    put_strary(cs, i);

    return 0;
}

演習 9-10

#include <stdio.h>

void del_digit(char str[]){
   
    int i, j;

    for(i = 0; str[i] != '\0'; i++){
        if('0' <= str[i] && str[i] <= '9'){
            for(j = i; str[j] != '\0'; j++){
                str[j] = str[j + 1];
            }
            i--;
        }
    }
}

int main(){

    char str[256];

    printf("文字列を入力:");  scanf("%s", str);

    del_digit(str);

    printf("数字を消すと\"%s\"です\n", str);

    return 0;
}

演習 9-9

#include <stdio.h>

void rev_string(char str[]){
   
    int i, length = 0;
    char tmp[256];

    for(i = 0; str[i] != '\0'; i++){
        tmp[i] = str[i];
        length++;
    }

    for(i = 0; i < length; i++){
        str[i] = tmp[length - 1 - i];      
    }
}

int main(){

    char str[256];

    printf("文字列を入力:");  scanf("%s", str);

    rev_string(str);

    printf("反転すると\"%s\"です\n", str);

    return 0;
}

演習 9-8

#include <stdio.h>

void put_stringr(const char str[]){
   
    int i;

    for(i = 0; str[i] != '\0'; i++);

    for(i = i - 1; i >= 0; i--){
        printf("%c", str[i]);
    }
    printf("\n");
}

int main(){

    char str[256];

    printf("文字列を入力:");  scanf("%s", str);

    put_stringr(str);

    return 0;
}

演習 9-7

#include <stdio.h>

void put_string(const char str[], int n){
   
    for(int i = 0; i < n; i++){
        printf("%s", str);
    }
    printf("\n");
}

int main(){

    char str[256];
    int n;

    printf("文字列を入力:");  scanf("%s", str);
    printf("繰り返す回数を入力:");   scanf("%d", &n);

    put_string(str, n);

    return 0;
}

演習 9-6

#include <stdio.h>

int str_chnum(const char s[], int c){

    int i, num = 0;

    for(i = 0; s[i] != '\0'; i++){
        if(s[i] == c) num++;
    }
    return num;
}

int main(){

    int num;
    char str[128];

    printf("入力:");  scanf("%s", str);

    num = str_chnum(str, 'c');

    printf("文字cは%d個あります\n", num);

    return 0;
}

演習 9-5

#include <stdio.h>

int str_char(const char s[], int c){

    for(int i = 0; s[i] != '\0'; i++){
        if(s[i] == c) return i;
    }
    return -1;
}

int main(){

    int index;
    char str[128];

    printf("入力:");  scanf("%s", str);

    index = str_char(str, 'c');

    if(index == -1){
        printf("文字cは含まれていません\n");
    }else{
        printf("文字cは配列の%d番目にあります\n", index);
    }

    return 0;
}

演習 9-4

#include <stdio.h>

void null_string(char s[]){
    s[0] = '\0';
}

int main(){

    char str[128];

    printf("入力:");  scanf("%s", str);
    printf("配列strに保存された文字は\"%s\"です\n", str);
   
    printf("初期化します\n");

    null_string(str);

    printf("初期化すると配列strに保存された文字は\"%s\"です\n", str);

    return 0;
}

演習 9-3

#include <stdio.h>

#define NUMBER 128

int main(){

    int i, j;
    char s[NUMBER][128];

    for(i = 0; i < NUMBER; i++){
        printf("s[%d] : ", i);
        scanf("%s", s[i]);

        for(j = 0; s[i][j] != '\0'; j++){
            if(s[i][j] != '$') break;
        }
        if(j == 5) break;
    }

    for(j = 0; j < i; j++){
        printf("s[%d] = \"%s\"\n", j, s[j]);
    }

    return 0;
}

演習 9-2

#include <stdio.h>

int main(){

    char s[] = "ABC";

    printf("sに入れられている文字列は\"%s\"です\n", s);

    s[0] = '\0';

    printf("sに入れられている文字列は\"%s\"です\n", s);
 
    return 0;
}

演習 9-1

#include <stdio.h>
int main(){

    char str[] = "ABC\0DEF";

    printf("文字列strは\"%s\"です\n", str);
    //\0はprintfの文字列の終端を意味するのでABCしか出力されない

    return 0;
}