-2

如何将字符串分解为字符数组,以便我可以单独分析和处理字符串中的每个字母?

示例类型代码,而我将是每个字母......

int
main(int argc, char *argv[])
{
    printf("what is the string?: ");
    string s = GetString();
    for(int i = 0; i<strlen(s); i++)
    printf("s[i]");
    return(0);
}
4

4 回答 4

2

字符串一个字符数组(额外的“\0”是数组中的最后一个元素)。

#define MAXLEN 80

int
main(int argc, char *argv[])
{
    char buf[MAXLEN];
    printf("what is the string?: ");
    fgets (buf, MAXLEN, stdin);
    for(int i = 0; i<strlen(buff); i++)
      printf("buff[%d]: %c\n", i, buf[i]);
    return(0);
}

===== 再举一个例子 =====

#include <stdio.h>
#include <string.h>

int
main (int argc, char *argv[])
{
  int i;
  char string[] = "ABC";

  for (i=0; i < strlen (string); i++) {
    printf ("%c\n", string[i]);
  }

  return 0;
}

样品输出:

A
B
C
于 2012-06-16T23:28:49.680 回答
0

字符串已经是一个字符数组,并且已经可以这样处理。您可以对数组执行的任何操作都可以对字符串执行,因此最好保持简单并仅使用数组。除非你有一些你没有提到的原因,但我想不出一个。

于 2012-06-16T23:31:59.540 回答
0
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

typedef char* string;

//input string from console stdin
string GetString(){
    char buff[1024];
    int len;
    fgets(buff, sizeof(buff), stdin);
    len = strlen(buff);
    if(buff[len-1] == '\n')
        buff[len-1]='\0';
    return strdup(buff);
}

int
main(int argc, char *argv[])
{
    printf("what is the string?: ");
    string s = GetString();
    for(int i = 0; i<strlen(s); i++)
        printf("s[%d]:%c\n", i, s[i]);

    char ca[strlen(s)+1];
    for(int i = 0; i<=strlen(s); i++)
        ca[i]=s[i];

    for(int i = 0; i<strlen(s); i++)
        printf("ca[%d]:%c\n", i, ca[i]);
    free(s);
    return(0);
}
/*
what is the string?: test
s[0]:t
s[1]:e
s[2]:s
s[3]:t
ca[0]:t
ca[1]:e
ca[2]:s
ca[3]:t
*/
于 2012-06-17T23:36:08.757 回答
0

在 c 中,字符串一个字符数组。

于 2012-06-16T23:29:01.103 回答