GTK+中文社区(gtk.awaysoft.com)

 找回密码
 马上加入

QQ登录

只需一步,快速开始

查看: 3979|回复: 3

一个简单的获取字符ASCII码值的程序,支持多字符

[复制链接]

该用户从未签到

发表于 2010-8-30 17:12:33 | 显示全部楼层 |阅读模式
一个简单的获取字符ASCII码值的程序
作者:AlimysoYang

#include <gtk/gtk.h>

GtkWidget *wnd;
GtkWidget *hbox1,*hbox2,*hbox3,*vbox;
GtkWidget *lbchars,*lbasciivalue;
GtkWidget *etchars,*etasciivalue;
GtkWidget *btnascii;

void ui_init()
{
    wnd = gtk_window_new(GTK_WINDOW_TOPLEVEL);
    gtk_window_set_title(GTK_WINDOW(wnd),"ASCII转换");
    gtk_window_set_position(GTK_WINDOW(wnd),GTK_WIN_POS_CENTER);
   
    lbchars = gtk_label_new("请输入");
    etchars = gtk_entry_new();
    hbox1 = gtk_hbox_new(FALSE,2);
    gtk_box_pack_start(GTK_BOX(hbox1),lbchars,FALSE,TRUE,2);
    gtk_box_pack_start(GTK_BOX(hbox1),etchars,TRUE,TRUE,2);
   
    lbasciivalue = gtk_label_new("ASCII值");
    etasciivalue = gtk_entry_new();
    hbox2 = gtk_hbox_new(FALSE,2);
    gtk_box_pack_start(GTK_BOX(hbox2),lbasciivalue,FALSE,TRUE,2);
    gtk_box_pack_start(GTK_BOX(hbox2),etasciivalue,TRUE,TRUE,2);
   
    btnascii = gtk_button_new_with_label("ASCII码转换");
    hbox3 = gtk_hbox_new(FALSE,0);
    gtk_box_pack_start(GTK_BOX(hbox3),btnascii,TRUE,TRUE,0);
   
    vbox = gtk_vbox_new(TRUE,2);
    gtk_box_pack_start(GTK_BOX(vbox),hbox1,TRUE,TRUE,2);
    gtk_box_pack_start(GTK_BOX(vbox),hbox2,TRUE,TRUE,2);
    gtk_box_pack_start(GTK_BOX(vbox),hbox3,TRUE,TRUE,2);
   
    gtk_container_add(GTK_CONTAINER(wnd),vbox);
    gtk_widget_show_all(wnd);
}

int chartoascii(gchar c)
{
    int i = c;
    return i;
}

void btnascii_clicked(GtkButton *button,gpointer user_data)
{
    gtk_entry_set_text(GTK_ENTRY(etasciivalue),"");
    const gchar *str = gtk_entry_get_text(GTK_ENTRY(etchars));
    if (str!=NULL)
    {
        gchar *c;
        c = &(*str);
        const gchar *result = "";
        int i,ir,len;
        len = strlen(str);
        for (i = 0;i<len;i++)
        {
            ir = chartoascii(*c);
            c++;
            result = g_strdup_printf("%d ",ir);
            gtk_entry_append_text(GTK_ENTRY(etasciivalue),result);
        }
    }
}

int main(int argc,char *argv[])
{
    gtk_init(&argc,&argv);
   
    ui_init();
   
    g_signal_connect(G_OBJECT(wnd),"destroy",G_CALLBACK(gtk_main_quit),NULL);
    g_signal_connect(G_OBJECT(btnascii),"clicked",G_CALLBACK(btnascii_clicked),NULL);
    gtk_main();
    return 0;
}

评分

参与人数 1 +10 收起 理由
Tom + 10 优秀文章

查看全部评分

  • TA的每日心情
    奋斗
    2021-11-19 13:15
  • 签到天数: 20 天

    连续签到: 1 天

    [LV.4]偶尔看看III

    发表于 2010-8-30 20:02:10 | 显示全部楼层
    嗯,这个东西很不错,赞一个~

    该用户从未签到

    发表于 2010-10-30 07:03:32 | 显示全部楼层
    新手学习啦。。。谢谢LZ。

    该用户从未签到

    发表于 2011-1-7 16:49:59 | 显示全部楼层
    *滑块验证:
    您需要登录后才可以回帖 登录 | 马上加入

    本版积分规则

    申请友链|Archiver|小黑屋|手机版|GTK+中文社区 ( 粤ICP备13080851号 )

    我要啦免费统计

    GMT+8, 2024-12-22 17:10 , Processed in 0.064839 second(s), 12 queries , Redis On.

    Powered by Discuz! X3.4

    Copyright © 2001-2021, Tencent Cloud.

    快速回复 返回顶部 返回列表