从char数组中的单词打印最后一个字符

时间:2013-11-28 09:16:07

标签: c arrays

我得到了这个:

char file_name[50];
strncpy(file_name, dp2->d_name, sizeof(file_name2));
// put some words in it, for example "E348C", "E348", "E348A"......

我需要找到每个单词的最后一个字符,如果它是数字或字母,请稍后再检查.....但你可以看到的单词长度不一样......

我不知道如何获得最后一个角色......

同样对变量file_name [50]进行char;可以定义为char * file_name;我不在乎....

有什么想法吗?

1 个答案:

答案 0 :(得分:2)

编辑:似乎问题已在上述评论中得到解决,但未来也许有人会提出类似的问题......

请查看评论。

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

int main(void) {

    char file_name[50];

    char inp[] = "something3";

    strncpy(file_name, inp, sizeof(inp));

    printf("%s\n", file_name);

    // strlen returns the length of a string. 
    char end_char = file_name[strlen(file_name)-1];

    printf("%c\n", end_char);

    if (isdigit(end_char)) {     // checks if end_char is a number
        printf("last character is a number\n");
    } 
    if (isalpha(end_char)){      // checks if end_char is a letter
        printf("last character is a character\n");
    }

return 0;
}

inp[] = "something3"的示例输出:

something3
3
last character is a number

inp[] = "somethingX"的示例输出:

somethingX
X
last character is a character